:root{--bg:#121212;--panel:#1E1E1E;--panel2:#1E1E1E;--line:rgba(255,255,255,.065);--text:#ffffff;--muted:#9ca3af;--red:#ef4444;--green:#34d399}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}.app{min-height:100vh}.wrap{max-width:760px;margin:auto;padding:18px 18px 110px}.topbar{position:sticky;top:0;z-index:10;background:rgba(18,18,18,.96);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:14px 18px}.brand{display:flex;align-items:center;gap:10px}.brand img{width:72px;height:46px;object-fit:contain}.pill,.badge{border:1px solid var(--line);padding:5px 9px;border-radius:999px;font-size:12px}.logout{background:none;color:var(--muted);border:0;font-size:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px;margin:14px 0}.row{display:flex;justify-content:space-between;gap:12px;align-items:center}.muted{color:var(--muted)}.tiny{font-size:12px}.btn{width:100%;border:0;border-radius:11px;padding:14px 16px;background:var(--red);color:#fff;font-weight:800}.btn.secondary{background:#1b1b1b;border:1px solid #3b3b3b}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:13px}.bar{height:5px;background:#292929;border-radius:99px;margin-top:8px;overflow:hidden}.bar i{display:block;height:100%;background:var(--red)}.tabs,.nav,.coachnav{display:flex;gap:8px}.tabs .tab,.nav button,.coachnav button{flex:1;background:#151515;color:#aaa;border:1px solid var(--line);padding:11px;border-radius:10px}.tabs .active,.nav .active,.coachnav .active{background:var(--red);color:white}.nav{position:fixed;bottom:0;left:0;right:0;z-index:9;background:#121212;border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom))}.sets{display:grid;grid-template-columns:44px 1fr 1fr 60px;gap:8px;align-items:center;margin-top:12px}.sets input,.textarea,select,input{width:100%;background:#0d0d0d;color:#fff;border:1px solid #383838;border-radius:10px;padding:12px}.check{height:46px;border-radius:10px;background:#171717;border:1px solid #444;color:#aaa}.check.done{background:#114b2b;color:#55ef9c}.good{color:#55ef9c}.warn{color:#ffce5c}.bad{color:#ff6673}.list{display:grid;gap:8px}.item{background:#0e0e0e;border:1px solid var(--line);border-radius:11px;padding:12px;display:flex;align-items:center;gap:11px}.grow{flex:1}.ico{font-size:24px}.chips{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.chip{border:1px solid var(--line);padding:7px 9px;border-radius:9px;color:#aaa}.chip.on{border-color:var(--red);color:#fff}.notice{border:1px solid #433;padding:11px;border-radius:10px;margin-top:12px}.notice.success{border-color:#164c31;background:#0c291c}.auth{min-height:100vh;display:grid;place-items:center;padding:24px}.authbox{width:min(100%,390px);background:#101010;border:1px solid var(--line);border-radius:18px;padding:24px;text-align:center}.authbox input,.authbox select{margin:7px 0}.login-logo{display:block;width:220px;max-width:74vw;height:150px;object-fit:contain;margin:0 auto 4px;background:transparent}.splash{position:fixed;inset:0;z-index:9999;background:#121212;display:grid;place-items:center;align-content:center;gap:16px;animation:splashAway .25s ease 1.15s forwards;pointer-events:none}.splash-logo{width:min(72vw,300px);height:220px;object-fit:contain;background:transparent}.splash-line{width:min(58vw,230px);height:3px;background:#222;overflow:hidden;border-radius:99px}.splash-line span{display:block;height:100%;background:var(--red);animation:loadLine .9s ease forwards}.mealthumb{display:grid;place-items:center;width:50px;height:50px;background:#191919;border-radius:10px;font-size:26px}.modal{position:fixed;inset:0;z-index:50;background:rgba(18,18,18,.88);display:grid;place-items:end center;padding:20px}.modalbox{width:min(100%,540px);background:#121212;border:1px solid #333;border-radius:18px;padding:18px}.modalactions{display:grid;gap:8px;margin-top:14px}.grocery label{display:block;padding:11px 0;border-bottom:1px solid #262626}.noscript{position:fixed;bottom:20px;left:20px;right:20px;background:#401019;padding:12px;border-radius:10px}@keyframes loadLine{from{width:0}to{width:100%}}@keyframes splashAway{to{opacity:0;visibility:hidden}}
@media(max-width:480px){.wrap{padding-left:12px;padding-right:12px}.grid2{gap:8px}.card{padding:14px}.brand img{width:62px}}
.smallbtn{width:auto!important;padding:10px 13px!important}.clickable{cursor:pointer}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#242424;font-weight:800}.field{display:block;margin:12px 0;color:var(--muted)}.field input{margin-top:6px}.danger{background:#7f1420}.dangeroutline{border-color:#7f2731!important;color:#ff7b88!important}.invitebox{word-break:break-all;background:#090909;border:1px solid #333;padding:12px;border-radius:10px;margin-top:12px;color:#ddd;font-size:12px}.toast{position:fixed;left:50%;bottom:24px;z-index:99999;transform:translate(-50%,18px);opacity:0;background:#153923;color:#dfffe9;border:1px solid #2c8251;border-radius:12px;padding:12px 16px;box-shadow:0 12px 40px #0009;transition:.2s ease;max-width:min(92vw,520px);font-weight:700}.toast.error{background:#43141a;border-color:#8d2a37;color:#ffdce0}.toast.show{opacity:1;transform:translate(-50%,0)}

.recipeSearch{display:grid;grid-template-columns:140px 1fr auto;gap:8px;align-items:center}.recipeSearch .btn{width:auto}.textbtn{background:none;border:0;color:#999;padding:12px 0 0;text-decoration:underline}.recipegrid{display:grid;gap:10px}.recipeResult{overflow:hidden;background:#0c0c0c;border:1px solid #2b2b2b;border-radius:13px}.recipehero{width:100%;height:180px;object-fit:cover;display:block}.recipebody{padding:12px}.recipeactions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.recipeimg{width:50px;height:50px;border-radius:10px;object-fit:cover;flex:0 0 50px}@media(max-width:560px){.recipeSearch{grid-template-columns:1fr}.recipeSearch .btn{width:100%}.recipehero{height:150px}}


/* V9 gym recipe library */
.libtabs{display:flex;gap:8px;overflow:auto;margin:14px 0 12px;padding-bottom:2px}
.libtab{border:1px solid #2a2a2a;background:#111;color:#aaa;border-radius:999px;padding:9px 13px;white-space:nowrap;cursor:pointer}
.libtab.active{background:#ff2238;color:#fff;border-color:#ff2238}
.libgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.libcard{text-align:left;background:#101010;border:1px solid #242424;border-radius:12px;padding:12px;color:#fff;cursor:pointer;min-height:68px;transition:.15s ease}
.libcard:hover{border-color:#ff2238;transform:translateY(-1px)}
.libcard b{display:block;font-size:14px;line-height:1.2}
.libcard span{display:block;color:#777;font-size:11px;margin-top:5px}
@media(max-width:760px){.libgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V10 custom prep + demo testing */
.demoRow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.mealactions{display:flex;gap:6px;align-items:center}.modalbox textarea{resize:vertical;min-height:110px}@media(max-width:520px){.demoRow{grid-template-columns:1fr}.mealactions{flex-direction:column;align-items:stretch}.mealactions .btn{width:100%!important}}

/* V11 compact expanded library */
.libraryCard{padding-bottom:14px}
.libsearch{width:100%;box-sizing:border-box;background:#0d0d0d;border:1px solid #292929;color:#fff;border-radius:10px;padding:10px 12px;margin:2px 0 6px;font:inherit}
.libcount{margin:0 0 8px}
.compactgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;max-height:360px;overflow:auto;padding-right:2px}
.libcard.compact{min-height:46px;padding:8px 9px;border-radius:9px}
.libcard.compact b{font-size:12.5px;line-height:1.15}
.libcard.compact span{font-size:10px;margin-top:3px}
@media(max-width:900px){.compactgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.compactgrid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:420px}.libcard.compact{min-height:44px}}


/* V12 Recipes AI */
.widewrap{max-width:980px}
.coachnav{margin:4px 0 14px}.coachnav button{font-weight:700}
.aiRecipePanel{background:linear-gradient(180deg,#121212,#0d0d0d);border:1px solid #2c2c2c;border-radius:18px;padding:18px;margin:14px 0;box-shadow:0 20px 60px #0006}
.aiRecipeHeader{display:flex;align-items:end;justify-content:space-between;gap:18px}.aiRecipeHeader h1{font-size:34px;margin:2px 0 4px}.aiRecipeHeader p{margin:0}.redtxt{color:var(--red);font-weight:900;letter-spacing:.08em}.clientPicker{min-width:220px;color:var(--muted);font-size:12px}.clientPicker select{margin-top:6px}.mealToggle{display:flex;gap:8px;margin:18px 0 10px;overflow:auto}.mealToggle button{background:#151515;border:1px solid #303030;color:#aaa;border-radius:10px;padding:10px 18px;font-weight:700}.mealToggle button.active{background:var(--red);border-color:var(--red);color:#fff}.aiPrompt{display:grid;grid-template-columns:1fr auto;gap:10px}.aiPrompt .btn{width:auto;padding-inline:22px}.aiPrompt input{font-size:15px}
.aiEmpty{text-align:center;padding:46px 20px 34px;border:1px dashed #303030;border-radius:15px;margin-top:16px;background:#0a0a0a}.aiOrb{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;font-weight:900;font-size:22px;background:radial-gradient(circle at 35% 30%,#ff5265,#8c1020 58%,#190306);box-shadow:0 0 38px #ff263b55}.promptExamples{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px}.promptExamples button{background:#151515;border:1px solid #303030;color:#ccc;border-radius:999px;padding:8px 11px}
.generatedRecipe{margin-top:16px;border:1px solid #303030;border-radius:16px;overflow:hidden;background:#0b0b0b}.generatedHero{width:100%;height:290px;object-fit:cover;display:block}.generatedBody{padding:18px}.macroStrip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.macroStrip b{background:#121212;border:1px solid #282828;border-radius:11px;padding:12px;font-size:20px}.macroStrip span{display:block;color:#777;font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.recipeColumns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ingredientRow{padding:9px 0;border-bottom:1px solid #222}.stepRow{display:grid;grid-template-columns:30px 1fr;gap:10px;padding:8px 0}.stepRow>span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#2b1115;color:#ff6673;font-weight:800}.recipeActions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.aiThumb{width:50px;height:50px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#5c0c17,#161616);font-weight:900;color:#ff6271}.aiRecipeThumb{width:58px;height:58px}.emptyState{text-align:center;padding:32px 16px;border:1px dashed #303030;border-radius:12px}.emptySpark{font-size:30px;color:var(--red);margin-bottom:8px}.detailHero{width:100%;height:280px;border-radius:14px;object-fit:cover;margin-bottom:14px}.aiHero{display:grid;place-items:center;background:linear-gradient(135deg,#39070e,#0b0b0b);font-weight:900;letter-spacing:.15em;color:#ff5668}
@media(max-width:720px){.aiRecipeHeader{align-items:stretch;flex-direction:column}.clientPicker{min-width:0}.aiPrompt{grid-template-columns:1fr}.aiPrompt .btn{width:100%}.recipeColumns{grid-template-columns:1fr}.macroStrip{grid-template-columns:1fr 1fr}.generatedHero,.detailHero{height:210px}}

/* V14 native nutrition diary */
.nutritionHero{background:linear-gradient(180deg,#121212,#0b0b0b)}.calBig{margin-top:18px}.calBig b{font-size:38px}.calBig span{color:#777}.bigbar{height:8px;margin:8px 0 16px}.macroMini{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.macroMini>div{background:#0c0c0c;border:1px solid #262626;border-radius:11px;padding:10px}.macroMini b,.macroMini span{display:block}.macroMini span{font-size:10px;color:#777;margin-top:3px}.foodDiary{margin-top:12px}.foodLogRow,.foodResult{display:flex;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #222}.iconbtn{border:0;background:#191919;color:#888;border-radius:9px;width:34px;height:34px;font-size:20px}.foodSearchBar{display:grid;grid-template-columns:1fr auto;gap:8px;margin:16px 0}.foodSearchBar .btn{width:auto}.quickFood{display:flex;gap:7px;overflow:auto;margin-bottom:12px}.quickFood button{white-space:nowrap;border:1px solid #2c2c2c;background:#111;color:#ccc;border-radius:999px;padding:8px 11px}.barcodeBox{display:grid;grid-template-columns:1fr auto;gap:8px;border-top:1px solid #222;padding-top:12px}.barcodeBox .btn{width:auto}.aiFoodCall{margin-top:14px;padding:14px;border:1px dashed #3b2528;border-radius:12px;background:#100b0c}.aiFoodCall b,.aiFoodCall .muted{display:block;margin-bottom:8px}.loadingFood{padding:28px;text-align:center;color:#999}.verifyBadge{display:inline-block;padding:6px 9px;border-radius:999px;background:#16361f;color:#8df0a6;font-size:10px;font-weight:900;letter-spacing:.06em}.verifyBadge.aiEstimate{background:#412b0d;color:#ffd27a}@media(max-width:560px){.foodSearchBar,.barcodeBox{grid-template-columns:1fr}.foodSearchBar .btn,.barcodeBox .btn{width:100%}.macroMini{gap:5px}.macroMini>div{padding:8px}}

/* V15 verified serving math + whole-food-first search */
.sourceFilters{display:flex;gap:7px;overflow:auto;margin:10px 0 12px;padding-bottom:2px}.sourceFilters button{white-space:nowrap;border:1px solid #2c2c2c;background:#111;color:#aaa;border-radius:999px;padding:8px 11px}.sourceFilters button.on{background:#241014;border-color:#7d2430;color:#fff}.foodResult{position:relative}.foodKind{min-width:72px;text-align:center;font-size:9px;font-weight:900;letter-spacing:.04em;border:1px solid #343434;border-radius:8px;padding:5px 6px;color:#aaa}.foodKind.whole{color:#7ef0aa;border-color:#235b39;background:#0c2416}.foodKind.supplement{color:#93c7ff;border-color:#244a72;background:#0d1b2b}.foodKind.sauce{color:#ffc87b;border-color:#6b4620;background:#27190b}.foodKind.brand{color:#bbb;background:#141414}.measureGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.servingExplain{background:#0b0b0b;border:1px solid #292929;border-radius:10px;padding:10px 12px;color:#ccc;font-size:13px;margin:8px 0}.celebrationCard{overflow:hidden;position:relative}.lfgText{font-size:72px;font-weight:1000;letter-spacing:-.05em;color:#fff;text-shadow:0 0 30px #ff263b,0 0 55px #ff263b88;animation:lfgPop .65s cubic-bezier(.2,1.6,.4,1)}.celebrateLayer{position:fixed;inset:0;z-index:999999;pointer-events:none;display:grid;place-items:center;overflow:hidden}.celebrateLayer i{position:absolute;left:50%;top:54%;width:7px;height:13px;border-radius:3px;background:var(--red);animation:fireworkFly 1.25s ease-out var(--d) forwards;box-shadow:0 0 12px #ff263b88}.foodBurst i:nth-child(3n){background:#fff}.foodBurst i:nth-child(3n+1){background:#ff9a36}.workoutBurst i:nth-child(4n){background:#fff}.workoutBurst i:nth-child(4n+1){background:#ffcc47}.burstLfg{font-size:min(24vw,130px);font-weight:1000;color:#fff;text-shadow:0 0 30px #ff263b,0 0 70px #ff263b;animation:lfgPop .8s cubic-bezier(.2,1.6,.4,1),lfgFade 1.7s ease forwards}.celebrateLayer i{transform:translate(0,0) rotate(0)}
@keyframes fireworkFly{0%{opacity:0;transform:translate(0,0) scale(.4) rotate(0)}12%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) scale(1) rotate(var(--r))}}
@keyframes lfgPop{0%{transform:scale(.2);opacity:0}70%{transform:scale(1.15);opacity:1}100%{transform:scale(1)}}
@keyframes lfgFade{0%,68%{opacity:1}100%{opacity:0}}
@media(max-width:560px){.measureGrid{grid-template-columns:1fr}.foodKind{min-width:58px;font-size:8px;padding:4px}.lfgText{font-size:56px}.foodResult{align-items:flex-start}}

/* V15 reliability + coach-only controls */
.sourceFilters{display:flex;gap:7px;overflow:auto;margin:10px 0 12px}.sourceFilters button{white-space:nowrap;border:1px solid #303030;background:#111;color:#aaa;border-radius:999px;padding:8px 11px}.sourceFilters button.on{background:#ff2238;border-color:#ff2238;color:#fff}.foodKind{font-size:9px;font-weight:900;letter-spacing:.06em;padding:5px 7px;border-radius:7px;flex:0 0 auto}.foodKind.whole{background:#14331e;color:#93f2aa}.foodKind.supplement{background:#25133b;color:#ca9dff}.foodKind.sauce{background:#3b2613;color:#ffd28e}.foodKind.brand{background:#191919;color:#bbb}.measureGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.servingExplain{background:#0b0b0b;border:1px solid #282828;border-radius:10px;padding:10px;margin:8px 0;color:#bbb;font-size:13px}.actionGrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:14px}.exerciseEdit{border:1px solid #292929;background:#0c0c0c;border-radius:12px;padding:12px;margin:10px 0}.editGrid{display:grid;grid-template-columns:2fr .7fr .8fr 2fr;gap:8px;margin-top:10px}.editGrid label{font-size:11px;color:#888}.editGrid input{margin-top:5px}.celebrationCard{text-align:center;overflow:hidden;position:relative}.lfgText{font-size:64px;font-weight:1000;letter-spacing:-.05em;color:#ff2238;text-shadow:0 0 30px #ff223866}.celebrateLayer{position:fixed;inset:0;z-index:999999;pointer-events:none;overflow:hidden}.celebrateLayer i{position:absolute;left:50%;top:55%;width:7px;height:14px;border-radius:2px;background:#ff3045;animation:burst 1.25s cubic-bezier(.2,.8,.2,1) var(--d) forwards}.celebrateLayer i:nth-child(3n){background:#fff}.celebrateLayer i:nth-child(4n){width:5px;height:5px;border-radius:50%}.burstLfg{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%) scale(.5);font-size:min(18vw,120px);font-weight:1000;color:#fff;text-shadow:0 0 40px #ff2238;animation:lfgPop 1.3s ease forwards}@keyframes burst{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:0}}@keyframes lfgPop{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}30%{transform:translate(-50%,-50%) scale(1.15);opacity:1}70%{transform:translate(-50%,-50%) scale(1);opacity:1}100%{transform:translate(-50%,-50%) scale(1.05);opacity:0}}
@media(max-width:760px){.actionGrid{grid-template-columns:1fr}.editGrid{grid-template-columns:1fr 1fr}.measureGrid{grid-template-columns:1fr}.lfgText{font-size:52px}.foodResult{align-items:flex-start;flex-wrap:wrap}.foodResult .btn{width:100%!important}}

.setupwarn{margin:14px 0;padding:12px 14px;border:1px solid rgba(255,65,65,.35);background:rgba(255,35,35,.08);border-radius:12px;color:#ffb4b4;font-size:13px;line-height:1.45}.setupwarn b{color:#fff}
/* V19 coach builders */
.targetGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.mealPlanCard,.mealPlanClient{border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.025);border-radius:18px;padding:14px;margin-top:12px}.mealPlanMeal{padding:12px 0;border-top:1px solid rgba(255,255,255,.07)}.mealPlanMeal:first-of-type{border-top:0}.workoutCard{padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.02);margin-top:10px}.workoutPreview{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.workoutPreview span,.chipBtn{font-size:12px;border:1px solid rgba(255,255,255,.1);background:#17191d;color:#d8d9dd;border-radius:999px;padding:7px 10px}.builderToolbar{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.exerciseStack{display:grid;gap:12px}.exerciseBuilderRow{display:grid;grid-template-columns:26px 1fr;gap:10px;padding:14px;background:#111317;border:1px solid rgba(255,255,255,.08);border-radius:16px}.dragHandle{color:#747780;padding-top:3px}.exerciseMeta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}.exerciseMeta label{font-size:11px;color:#8e9199}.exerciseMeta input{margin-top:5px}.field.compact{margin:0}.moveRow{justify-content:flex-start!important;gap:8px}.chipBtn{cursor:pointer}.muscleBubbles{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}.muscleBubble{width:72px;height:72px;border-radius:50%;border:1px solid rgba(255,65,65,.42);background:radial-gradient(circle at 35% 25%,#2b2d34,#111217 68%);color:#fff;font-weight:700;cursor:pointer}.muscleBubble:hover{border-color:#f33}.exercisePickerList{display:grid;gap:8px;max-height:360px;overflow:auto}.exercisePick{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;padding:12px;border-radius:13px;border:1px solid rgba(255,255,255,.08);background:#14161a;color:#fff;cursor:pointer}.exercisePick span{display:flex;flex-direction:column;gap:3px}.exercisePick small{color:#858892}.actionGrid .btn{min-height:48px}.coachnav button{min-height:44px}
@media(max-width:620px){.targetGrid,.exerciseMeta{grid-template-columns:1fr 1fr}.muscleBubble{width:64px;height:64px;font-size:12px}.actionGrid{grid-template-columns:1fr}.builderToolbar .btn{flex:1}}

/* V20 coach builders */
.coachHero{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#171717,#0d0d0d);border:1px solid #2b2b2b}
.builderActions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.aiBtn{background:linear-gradient(135deg,#b20f22,#e1263d);box-shadow:0 0 0 1px rgba(255,67,92,.18),0 8px 28px rgba(167,7,29,.28)}
.aiIntro{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid #2b2b2b;background:#111;border-radius:14px;margin-bottom:14px}.aiOrb{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#b20f22;color:white;font-size:20px;flex:none;box-shadow:0 0 24px rgba(220,30,57,.3)}
.mealPhotoGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.mealPhotoGrid.compactGrid{max-height:430px;overflow:auto;padding-right:4px}.mealVisualCard{overflow:hidden;border-radius:16px;background:#111;border:1px solid #292929}.mealVisualCard img{width:100%;height:165px;object-fit:cover;display:block;background:#181818}.mealVisualBody{padding:12px}.mealVisualBody ul{list-style:none;padding:0;margin:10px 0 0}.mealVisualBody li{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-top:1px solid #222;font-size:12px}.macroPill,.matchScore{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;background:#201015;border:1px solid #5f1b2b;color:#ff8fa1;font-size:11px;font-weight:700}.matchScore{background:#102016;border-color:#245f36;color:#84e69c;white-space:nowrap}.mealPlanCard.visual{padding:14px}.mealPreviewHint{padding:14px;border:1px dashed #333;border-radius:14px;color:#8d8d8d;margin-top:12px}.programPreview{display:grid;gap:10px;margin:12px 0}.programDay{border:1px solid #2b2b2b;border-radius:14px;padding:12px;background:#111}.programDay .tiny{line-height:1.8}.exerciseBuilderRow{border:1px solid #2b2b2b!important;background:#101010!important}.exercisePickerList{max-height:360px;overflow:auto}.exercisePick small{display:block;color:#888;margin-top:2px}.mealPlanClient .mealVisualCard img{height:150px}
@media(max-width:720px){.coachHero{align-items:stretch;flex-direction:column}.builderActions{justify-content:stretch}.builderActions .btn{flex:1}.mealPhotoGrid{grid-template-columns:1fr}.mealVisualCard img{height:190px}.targetGrid{grid-template-columns:1fr 1fr}}

.successBanner{padding:14px 16px;border:1px solid rgba(67,214,131,.35);background:rgba(67,214,131,.08);border-radius:14px;margin-bottom:12px}.successBanner b{display:block;font-size:15px;margin-bottom:4px}

/* V23 — builder viewport + overflow hardening */
html,body,.app{max-width:100%;overflow-x:hidden}
img,video,iframe{max-width:100%}
input,select,textarea,button{min-width:0;max-width:100%}
.row{min-width:0}
.row>*{min-width:0}
.targetGrid>* , .exerciseMeta>* , .mealPhotoGrid>* , .recipeColumns>*{min-width:0}

/* Every builder/modal must remain fully reachable at any viewport size. */
.modal{
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  align-items:center;
  justify-items:center;
  padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));
}
.modalbox{
  width:min(100%,760px);
  max-width:760px;
  max-height:calc(100dvh - 24px);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding-bottom:18px;
}
.modalbox>.row:first-child{
  position:sticky;
  top:-18px;
  z-index:4;
  background:#121212;
  padding:18px 0 10px;
  margin-top:-18px;
}
.modalactions{
  position:sticky;
  bottom:-18px;
  z-index:5;
  background:linear-gradient(to bottom,rgba(18,18,18,0),#121212 18px);
  padding:24px 0 18px;
  margin-bottom:-18px;
}
.mealPhotoGrid,.programPreview,.exerciseStack,.exercisePickerList{max-width:100%}
.mealVisualCard,.programDay,.exerciseBuilderRow,.workoutCard{min-width:0;max-width:100%}
.mealVisualBody li{min-width:0;flex-wrap:wrap}
.exercisePick{min-width:0}

@media(max-width:620px){
  .modal{
    padding:0;
    align-items:stretch;
    justify-items:stretch;
  }
  .modalbox{
    width:100%;
    max-width:none;
    height:100dvh;
    max-height:100dvh;
    border-radius:0;
    border-left:0;
    border-right:0;
    padding:16px 14px calc(20px + env(safe-area-inset-bottom));
  }
  .modalbox>.row:first-child{
    top:-16px;
    margin-top:-16px;
    padding:16px 0 10px;
  }
  .modalactions{
    bottom:calc(-20px - env(safe-area-inset-bottom));
    padding:24px 0 calc(20px + env(safe-area-inset-bottom));
    margin-bottom:calc(-20px - env(safe-area-inset-bottom));
  }
  .targetGrid,.exerciseMeta,.measureGrid,.recipeColumns,.macroStrip{
    grid-template-columns:1fr!important;
  }
  .mealPhotoGrid{grid-template-columns:1fr!important}
  .builderActions,.builderToolbar{display:grid;grid-template-columns:1fr;width:100%}
  .builderActions .btn,.builderToolbar .btn{width:100%}
  .coachHero{min-width:0}
  .muscleBubbles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .muscleBubble{width:100%;height:58px;border-radius:14px}
}

@media(max-width:380px){
  .wrap{padding-left:12px;padding-right:12px}
  .modalbox{padding-left:12px;padding-right:12px}
  .muscleBubbles{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* V24 — luxury concierge design system */
:root{
  --bg:#121212;
  --panel:#1E1E1E;
  --panel2:#1E1E1E;
  --line:rgba(255,255,255,.065);
  --text:#ffffff;
  --muted:#9ca3af;
  --orange:#f97316;
  --red:#ef4444;
  --green:#34d399;
}
html,body,.app{background:#121212!important;color:#fff!important;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important}
body{min-height:100vh}
.wrap{max-width:920px;padding:28px 24px 72px}
.widewrap{max-width:1080px}
.topbar{background:rgba(18,18,18,.96)!important;border:0!important;box-shadow:0 8px 30px rgba(0,0,0,.22);padding:16px 24px}
.brand img{border-radius:16px}
.card,.metric,.authbox,.modalbox,.workoutCard,.mealPlanCard,.mealPlanClient,.programDay,.exerciseBuilderRow,.templatePreviewCard,.todayMiniCard,.todayHero,.focusCard{
  background:#1E1E1E!important;
  border:0!important;
  border-radius:16px!important;
  box-shadow:0 10px 20px rgba(0,0,0,.28),0 4px 8px rgba(0,0,0,.18)!important;
}
.card{padding:32px!important;margin:20px 0!important}
.metric{padding:22px!important}
.card img,.mealVisualCard img,.exerciseGif,.recipehero,.generatedHero,.detailHero{border-radius:16px!important}
.muted,.field,.tiny.muted{color:#9ca3af!important}
h1,h2,h3,b,strong{color:#fff}
h1{letter-spacing:-.035em;font-weight:800}
h2{letter-spacing:-.025em;font-weight:700}
.eyebrow,.redtxt{font-size:11px;font-weight:800;letter-spacing:.14em;color:#fb923c!important;text-transform:uppercase}
input,select,textarea,.sets input,.textarea{
  background:#181818!important;color:#fff!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:14px!important;padding:13px 14px!important;outline:none;box-shadow:none!important
}
input:focus,select:focus,textarea:focus{border-color:rgba(249,115,22,.65)!important;box-shadow:0 0 0 3px rgba(249,115,22,.1)!important}
.btn:not(.secondary):not(.danger),.tabs .active,.coachnav .active,.nav .active,.gradientIconBtn{
  background:linear-gradient(90deg,#f97316,#ef4444)!important;color:#fff!important;border:0!important;box-shadow:0 10px 24px rgba(239,68,68,.18)!important
}
.btn{border-radius:14px!important;min-height:48px;padding:14px 18px!important;transition:transform .16s ease,filter .16s ease,opacity .16s ease}
.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn:active{transform:scale(.985)}
.btn.secondary{background:#292929!important;color:#fff!important;border:0!important;box-shadow:none!important}
.btn.danger{background:linear-gradient(90deg,#b91c1c,#ef4444)!important}
.logout,.luxTextBtn{background:transparent!important;border:0!important;color:#9ca3af!important;padding:8px 0!important;cursor:pointer;font-weight:600}
.logout:hover,.luxTextBtn:hover{color:#fff!important}
.tabs .tab,.nav button,.coachnav button{background:#1E1E1E!important;border:0!important;border-radius:14px!important;color:#9ca3af!important}
.coachnav{padding:6px;background:#181818;border-radius:16px;gap:6px;box-shadow:0 8px 22px rgba(0,0,0,.2)}
.coachnav .active{color:#fff!important}
.bar,.luxProgress{height:8px;background:#2a2a2a!important;border-radius:999px;overflow:hidden}
.bar i,.luxProgress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#f97316,#ef4444)!important;transition:width .35s ease}
.splash{background:#121212!important}
.modal{background:rgba(18,18,18,.88)!important;backdrop-filter:blur(12px)}
.modalbox{background:#1E1E1E!important}
.modalbox>.row:first-child{background:#1E1E1E!important}
.modalactions{background:linear-gradient(to bottom,rgba(30,30,30,0),#1E1E1E 22px)!important}
.item,.foodResult,.recipeResult,.aiFoodCall,.mealVisualCard,.exercisePick,.sourceFilters button,.quickFood button,.chipBtn{
  background:#242424!important;border:0!important;border-radius:14px!important
}
.item{padding:18px!important}
.emptyState{border:1px dashed rgba(255,255,255,.09)!important;border-radius:16px!important;background:#191919!important;padding:28px!important}
.badge,.pill,.templateBadge,.macroPill,.matchScore{border:0!important;border-radius:999px!important}
.templateBadge{display:inline-flex;align-items:center;padding:7px 10px;background:#2b2b2b;color:#d1d5db;font-size:11px;font-weight:700;white-space:nowrap}

/* Client Today dashboard */
.todayDashboard{max-width:860px}
.todayHero{padding:36px!important;margin-top:18px}
.todayGreeting{align-items:flex-start;margin:8px 0 26px}
.todayGreeting h1{margin:4px 0 6px;font-size:clamp(30px,5vw,46px)}
.todayGreeting p{margin:0}
.gradientIconBtn{width:50px;height:50px;border-radius:16px!important;font-size:26px;display:grid;place-items:center;flex:none;cursor:pointer}
.nutritionVisual{display:grid;grid-template-columns:220px 1fr;gap:34px;align-items:center}
.calorieRing{position:relative;width:210px;height:210px;display:grid;place-items:center;margin:auto}
.calorieRing svg{width:100%;height:100%;transform:rotate(-90deg);overflow:visible}
.ringTrack,.ringValue{fill:none;stroke-width:11}
.ringTrack{stroke:#2b2b2b}
.ringValue{stroke:url(#calGrad);stroke-linecap:round;transition:stroke-dashoffset .45s ease}
.ringCenter{position:absolute;display:grid;place-items:center;text-align:center;line-height:1.1}
.ringCenter b{font-size:40px;letter-spacing:-.05em}
.ringCenter span{font-size:12px;color:#9ca3af;margin-top:6px}
.macroStack{display:grid;gap:19px}
.macroProgress .row{margin-bottom:8px}
.macroProgress span{font-size:13px;color:#d1d5db;font-weight:600}
.macroProgress b{font-size:12px;color:#9ca3af;font-weight:600}
.todaySection{margin-top:30px}
.sectionHeading{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:14px}
.sectionHeading h2{margin:4px 0 0;font-size:26px}
.dailyActions{display:grid;gap:12px}
.todayAction{display:flex;align-items:center;gap:15px;background:#1E1E1E;border-radius:16px;padding:20px 22px;box-shadow:0 10px 20px rgba(0,0,0,.25);cursor:pointer;transition:transform .18s ease,opacity .18s ease,background .18s ease}
.todayAction:hover{transform:translateY(-2px);background:#232323}
.todayAction.done{opacity:.5}
.todayAction.done .grow b,.todayAction.done .grow span{text-decoration:line-through}
.todayAction .grow b{display:block;font-size:16px}
.todayAction .grow span{display:block;color:#9ca3af;font-size:12px;margin-top:3px}
.actionCheck{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;flex:none;background:#2a2a2a;color:#fff;font-weight:900}
.todayAction.done .actionCheck{background:linear-gradient(90deg,#f97316,#ef4444)}
.actionLaunch{border:0;background:transparent;color:#fb923c;font-weight:700;white-space:nowrap;cursor:pointer;padding:8px}
.todayMiniCard{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;margin-top:18px}
.todayMiniCard b,.todayMiniCard span{display:block}
.todayMiniCard b{margin-top:4px}
.actionComplete{animation:actionComplete .28s cubic-bezier(.2,1.4,.4,1)}
@keyframes actionComplete{0%{transform:scale(1)}55%{transform:scale(1.025);box-shadow:0 0 0 6px rgba(249,115,22,.08),0 12px 30px rgba(239,68,68,.22)}100%{transform:scale(1)}}

/* Workout Focus Mode */
.focusMode{max-width:760px}
.focusTop{display:flex;align-items:center;justify-content:space-between;color:#9ca3af;margin:16px 0 10px}
.workoutProgress{margin-bottom:18px}
.focusCard{padding:34px!important}
.focusCard h1{font-size:clamp(30px,5vw,44px);margin:6px 0 4px}
.exerciseGif,.exerciseGifPlaceholder{width:100%;height:min(42vh,360px);margin:24px 0;object-fit:cover;border-radius:16px;background:linear-gradient(135deg,#242424,#191919)}
.exerciseGifPlaceholder{display:grid;place-items:center;align-content:center;text-align:center;padding:24px;gap:6px;color:#9ca3af}
.exerciseGifPlaceholder span{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:linear-gradient(90deg,#f97316,#ef4444);color:white;font-weight:900;letter-spacing:.08em}
.exerciseGifPlaceholder b{font-size:20px;margin-top:6px}
.exerciseGifPlaceholder small{max-width:320px}
.focusInputs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}
.focusInputs label span{display:block;font-size:12px;color:#9ca3af;margin-bottom:7px;font-weight:600}
.focusInputs input{font-size:18px!important;padding:16px!important;text-align:center}
.focusNext{margin-top:4px;font-size:16px}
.focusComplete{text-align:center;padding:48px 32px!important}

/* Luxury coach template library */
.coachHero{background:#1E1E1E!important;padding:32px!important;align-items:flex-start}
.coachHero h1{font-size:clamp(28px,4vw,40px);margin:5px 0}
.templateLibrary{overflow:hidden}
.templateLibrary select{font-size:15px}
.templatePreviewCard{padding:22px;margin:16px 0 20px}
.templatePreviewCard>div:first-child b,.templatePreviewCard>div:first-child span{display:block}
.templatePreviewCard>div:first-child b{font-size:18px;margin-bottom:4px}
.templatePreviewCard>div:first-child span{font-size:12px;color:#9ca3af}
.templateMacros{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.templateMacros span{padding:7px 10px;border-radius:999px;background:#292929;color:#e5e7eb;font-size:12px;font-weight:600}
.compactTemplateMeals{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none!important;overflow:visible!important}
.programDay{padding:16px!important;background:#242424!important;box-shadow:none!important}
.mealVisualCard{background:#242424!important;box-shadow:none!important;overflow:hidden}
.mealVisualBody{padding:18px!important}
.mealVisualBody li{border-top:1px solid rgba(255,255,255,.06)!important}
.exerciseBuilderRow{padding:20px!important;background:#242424!important;box-shadow:none!important}
.exerciseMediaGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
.workoutCard{padding:20px!important;background:#242424!important;box-shadow:none!important}
.workoutPreview span{background:#2d2d2d!important;border:0!important}
.targetGrid{gap:14px}

/* Nutrition luxury refinements */
.nutritionHero{background:#1E1E1E!important}
.nutritionMacroStack{margin-top:24px}
.calBig b{font-size:46px}
.foodLogRow{border-bottom:1px solid rgba(255,255,255,.06)!important;padding:17px 0!important}
.iconbtn{background:#292929!important;border-radius:12px!important}

@media(max-width:720px){
  .wrap{padding:18px 14px 54px}
  .card{padding:24px!important}
  .todayHero,.focusCard,.coachHero{padding:24px!important}
  .nutritionVisual{grid-template-columns:1fr;gap:18px}
  .calorieRing{width:188px;height:188px}
  .ringCenter b{font-size:36px}
  .sectionHeading{align-items:flex-start;flex-direction:column}
  .todayAction{padding:18px}
  .todayAction .actionLaunch{font-size:12px}
  .focusInputs,.exerciseMediaGrid{grid-template-columns:1fr}
  .exerciseGif,.exerciseGifPlaceholder{height:280px}
  .compactTemplateMeals{grid-template-columns:1fr}
  .mealPhotoGrid{grid-template-columns:1fr!important}
  .coachnav{overflow:auto}
  .coachnav button{min-width:110px}
}
@media(max-width:430px){
  .todayGreeting{flex-direction:column}
  .gradientIconBtn{align-self:flex-end;margin-top:-50px}
  .todayAction{align-items:flex-start;flex-wrap:wrap}
  .actionLaunch{margin-left:45px;padding-left:0}
  .focusCard .row{align-items:flex-start;flex-direction:column}
  .exerciseGif,.exerciseGifPlaceholder{height:240px}
}


/* V25 — glass, depth, metric contrast, premium action iconography */
/* Client-facing glass layers. Coach-facing cards remain opaque for editing clarity. */
.todayHero,
.todayAction,
.todayMiniCard,
.focusCard,
.focusComplete,
.celebrationCard,
.nutritionV24 > .card,
.mealPlanClient{
  background:rgba(255,255,255,.05)!important;
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.10)!important;
  box-shadow:0 24px 60px rgba(0,0,0,.60)!important;
  border-radius:16px!important;
}
.todayAction{box-shadow:0 18px 42px rgba(0,0,0,.52)!important}
.todayAction:hover{background:rgba(255,255,255,.075)!important;transform:translateY(-2px)}
.todayAction.done{background:rgba(255,255,255,.035)!important;opacity:.5}

/* Premium metric contrast: large light numbers + tiny tracked labels. */
.ringCenter b,
.calBig b{
  font-weight:300!important;
  letter-spacing:-.055em!important;
  font-variant-numeric:tabular-nums;
}
.ringCenter b{font-size:44px!important}
.calBig b{font-size:clamp(48px,8vw,72px)!important;line-height:.96}
.ringCenter span,
.macroProgress .row span,
.focusInputs label>span,
.todayMiniCard .tiny,
.nutritionV24 .eyebrow{
  font-size:11px!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.14em!important;
  color:#9ca3af!important;
}
.macroProgress .row b{font-size:13px!important;font-weight:500!important;color:#d1d5db!important;font-variant-numeric:tabular-nums}
.sectionHeading .eyebrow{letter-spacing:.16em!important}

/* Progress ring: visible 0% track + a soft energy glow only after progress exists. */
.ringTrack{stroke:rgba(255,255,255,.10)!important}
.calorieRing.hasProgress .ringValue{filter:drop-shadow(0 0 5px rgba(249,115,22,.42)) drop-shadow(0 0 10px rgba(239,68,68,.20))}
.ringValue{stroke-width:11.5!important}

/* Exercise library pills: no cheap red outlines. */
.muscleBubbles{gap:9px!important}
.muscleBubble{
  width:auto!important;
  height:auto!important;
  min-width:78px;
  padding:11px 16px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.05)!important;
  color:#9ca3af!important;
  border:1px solid transparent!important;
  box-shadow:none!important;
  font-weight:700!important;
  transition:transform .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease;
}
.muscleBubble:hover{background:rgba(255,255,255,.08)!important;color:#fff!important;transform:translateY(-1px)}
.muscleBubble.selected{
  background:linear-gradient(90deg,#f97316,#ef4444)!important;
  color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 10px 24px rgba(239,68,68,.20)!important;
}

/* Daily-action icon system. */
.dailyActionIcon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.08);
}
.dailyActionIcon svg{width:24px;height:24px;display:block}
.todayAction .actionCheck{order:3;width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08)}
.todayAction.done .actionCheck{background:linear-gradient(90deg,#f97316,#ef4444);border-color:transparent}
.todayAction .actionLaunch{order:4}

@media(max-width:620px){
  .todayHero,.focusCard{padding:24px!important}
  .todayAction{padding:17px 16px!important;gap:12px}
  .dailyActionIcon{width:38px;height:38px;flex-basis:38px;border-radius:12px}
  .dailyActionIcon svg{width:22px;height:22px}
  .muscleBubbles{display:flex!important;overflow-x:auto;flex-wrap:nowrap!important;padding-bottom:4px;scrollbar-width:none}
  .muscleBubbles::-webkit-scrollbar{display:none}
  .muscleBubble{min-width:max-content!important;padding:10px 15px!important}
}

/* V26 — fast food search, executive calendar, realtime concierge chat */
.calendarShell{
  padding:14px 12px;
  margin:0 0 18px;
  overflow:hidden;
  background:rgba(255,255,255,.05)!important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.1)!important;
  border-radius:22px!important;
  box-shadow:0 24px 54px rgba(0,0,0,.55)!important;
}
.weekBar{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding:2px 2px 4px;scroll-snap-type:x proximity}
.weekBar::-webkit-scrollbar{display:none}
.weekDay{min-width:62px;min-height:100px;padding:14px 11px;border:1px solid transparent;border-radius:999px;background:rgba(255,255,255,.05);color:#6b7280;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;scroll-snap-align:center;transition:transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}
.weekDay span{font-size:9px;font-weight:800;letter-spacing:.18em}
.weekDay b{font-size:21px;font-weight:400;color:#9ca3af;font-variant-numeric:tabular-nums}
.weekDay i{width:5px;height:5px;border-radius:999px;background:#f97316;box-shadow:0 0 12px rgba(249,115,22,.9)}
.weekDay i.emptyDot{background:transparent;box-shadow:none}
.weekDay small{font-size:7px;font-weight:900;letter-spacing:.12em;color:#9ca3af}
.weekDay.active{background:linear-gradient(90deg,#f97316,#ef4444);color:#fff;box-shadow:0 12px 28px rgba(239,68,68,.22);transform:translateY(-1px)}
.weekDay.active b,.weekDay.active small{color:#fff}
.weekDay.active i{background:#fff;box-shadow:0 0 12px rgba(255,255,255,.9)}
.todayHeroActions{display:flex;gap:10px;align-items:center}
.glassIconBtn{width:46px;height:46px;border-radius:15px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.06);color:#d1d5db;display:grid;place-items:center;box-shadow:0 12px 28px rgba(0,0,0,.35);backdrop-filter:blur(12px)}
.glassIconBtn svg{width:22px;height:22px}
.glassIconBtn:hover{background:rgba(255,255,255,.1);color:#fff}

.foodSearchPage{max-width:900px}
.foodSearchCard{overflow:visible}
.premiumSearch input{background:rgba(255,255,255,.055)!important;border:1px solid rgba(255,255,255,.1)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.recentFoodsSection{margin:18px 0 16px;padding:16px;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07)}
.sectionHeading.compact{margin-bottom:12px}
.sectionHeading.compact h3{margin:2px 0 0;font-size:17px}
.recentFoodGrid{display:grid;gap:9px}
.recentFoodCard{width:100%;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.045);border-radius:14px;padding:13px 14px;color:#fff;display:flex;justify-content:space-between;gap:14px;align-items:center;text-align:left;box-shadow:0 12px 28px rgba(0,0,0,.18);transition:transform .16s ease,background .16s ease}
.recentFoodCard:hover{transform:translateY(-1px);background:rgba(255,255,255,.07)}
.recentFoodCard b{display:block;font-size:13px;margin-bottom:3px}
.recentFoodCard>div>span{display:block;font-size:10px;color:#9ca3af}
.recentFoodMacros{display:flex!important;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.recentFoodMacros strong{font-size:11px;color:#fff}
.recentFoodMacros span{font-size:9px!important;color:#9ca3af!important;background:rgba(255,255,255,.05);border-radius:999px;padding:5px 7px}
.recentFoodEmpty,.recentSearchPrompt{padding:18px;border-radius:14px;background:rgba(255,255,255,.025);border:1px dashed rgba(255,255,255,.09);display:flex;flex-direction:column;gap:4px;color:#d1d5db}
.recentFoodEmpty small,.recentSearchPrompt small{color:#6b7280}
.foodSkeletonStack{display:grid;gap:10px;padding:6px 0}
.foodSkeleton{min-height:74px;background:rgba(255,255,255,.08)!important;position:relative;overflow:hidden}
.foodSkeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);animation:luxShimmer 1.25s infinite}
@keyframes luxShimmer{100%{transform:translateX(100%)}}
.premiumFoodResult{display:flex!important;gap:13px!important;align-items:center!important;padding:16px!important;margin:10px 0!important;border-bottom:1px solid rgba(255,255,255,.1)!important;background:rgba(255,255,255,.05)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 14px 34px rgba(0,0,0,.28)!important}
.premiumFoodResult .grow>b{font-size:14px;display:block;margin-bottom:3px}
.foodMacroPills{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:9px}
.foodCal{font-size:11px;font-weight:800;color:#fff;background:rgba(255,255,255,.08);border-radius:999px;padding:5px 8px}
.macroBadge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;letter-spacing:.02em;border:1px solid transparent}
.macroBadge.protein{color:#86efac;background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.18)}
.macroBadge.carbs{color:#93c5fd;background:rgba(59,130,246,.1);border-color:rgba(59,130,246,.18)}
.macroBadge.fats{color:#fcd34d;background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.18)}

.chatPage{width:min(860px,100%);height:calc(100dvh - 78px);margin:0 auto;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#121212;overflow:hidden}
.chatHeader{display:flex;align-items:center;gap:16px;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(18,18,18,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);z-index:3}
.chatIdentity{display:flex;align-items:center;gap:11px;min-width:0;flex:1}
.chatIdentity .avatar{width:40px;height:40px;flex:0 0 40px}
.chatIdentity b{display:block;color:#fff;font-size:14px}
.chatIdentity span{display:block;color:#6b7280;font-size:10px;margin-top:2px}
.liveDotWrap{display:flex;align-items:center;gap:6px;color:#9ca3af;font-size:9px;font-weight:900;letter-spacing:.12em}
.liveDotWrap i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 14px rgba(34,197,94,.75)}
.chatMessages{overflow-y:auto;padding:22px 18px 24px;scroll-behavior:smooth;background:radial-gradient(circle at top right,rgba(249,115,22,.035),transparent 34%),#121212}
.chatRow{display:flex;margin:8px 0}
.chatRow.mine{justify-content:flex-end}
.chatRow.theirs{justify-content:flex-start}
.chatBubble{max-width:min(78%,620px);padding:11px 14px 8px;font-size:14px;line-height:1.45;box-shadow:0 8px 18px rgba(0,0,0,.2);word-wrap:break-word;white-space:pre-wrap}
.chatBubble span{display:block;font-size:9px;margin-top:5px;opacity:.65;text-align:right}
.clientBubble{background:linear-gradient(90deg,#f97316,#ef4444);color:#fff;border-radius:18px 18px 5px 18px}
.coachBubble{background:#1E1E1E;color:#fff;border:1px solid rgba(255,255,255,.07);border-radius:18px 18px 18px 5px}
.chatComposer{position:sticky;bottom:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:12px 16px max(12px,env(safe-area-inset-bottom));background:rgba(30,30,30,.8);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.1);z-index:4}
.chatComposer textarea{resize:none;max-height:120px;min-height:46px;border-radius:16px!important;padding:13px 14px!important;background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.09)!important;color:#fff}
.chatSend{width:46px;height:46px;border:0;border-radius:15px;background:linear-gradient(90deg,#f97316,#ef4444);color:#fff;display:grid;place-items:center;box-shadow:0 12px 28px rgba(239,68,68,.2)}
.chatSend svg{width:21px;height:21px}
.chatEmpty{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;gap:6px;padding:40px}
.chatEmpty span{color:#6b7280;font-size:12px}
.chatEmptyIcon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.05);color:#f97316;margin-bottom:5px}
.chatEmptyIcon svg{width:25px;height:25px}
.chatSkeleton{display:grid;gap:13px;padding-top:20px}
.chatSkeleton i{height:46px;width:58%;border-radius:18px;background:rgba(255,255,255,.06);animation:chatPulse 1.2s ease-in-out infinite alternate}
.chatSkeleton i:nth-child(2){margin-left:auto;width:42%}.chatSkeleton i:nth-child(3){width:67%}
@keyframes chatPulse{from{opacity:.4}to{opacity:.9}}

@media(max-width:640px){
  .calendarShell{margin-left:-2px;margin-right:-2px;padding:12px 8px}
  .weekDay{min-width:54px;min-height:92px;padding:12px 9px}
  .weekDay b{font-size:19px}
  .recentFoodCard{align-items:flex-start;flex-direction:column}
  .recentFoodMacros{justify-content:flex-start!important}
  .premiumFoodResult{align-items:flex-start!important;flex-wrap:wrap}
  .premiumFoodResult .btn{width:100%!important}
  .chatPage{height:calc(100dvh - 68px)}
  .chatHeader{padding:10px 12px;gap:10px}
  .chatHeader>.luxTextBtn{padding:7px 8px!important}
  .chatMessages{padding:16px 12px 20px}
  .chatBubble{max-width:86%}
  .chatComposer{padding-left:10px;padding-right:10px}
}
.dailyActions{animation:v26FadeSlide .22s ease}
@keyframes v26FadeSlide{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

/* EP Fitness V27 — concierge food, adaptive meal plan, chat quick actions */
.conciergeFoodSearch{max-width:920px!important;padding-bottom:110px}
.foodConciergeHero{margin-top:16px;padding:30px;border-radius:26px;background:radial-gradient(circle at 85% 5%,rgba(249,115,22,.13),transparent 36%),rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.09);box-shadow:0 26px 70px rgba(0,0,0,.46);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.foodConciergeHero h1{font-size:clamp(34px,6vw,58px);font-weight:300;letter-spacing:-.045em;margin:5px 0 7px;line-height:1.02}
.omniBar{margin-top:24px;padding:16px!important;border-radius:22px!important;background:rgba(255,255,255,.055)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 18px 50px rgba(0,0,0,.28)}
.omniBar textarea{width:100%;min-height:78px;resize:none;background:transparent!important;border:0!important;box-shadow:none!important;padding:2px 2px 12px!important;font-size:19px;line-height:1.45;color:#fff;outline:none}
.omniBar textarea::placeholder{color:#737373}
.omniActions{display:flex;gap:10px;align-items:center;border-top:1px solid rgba(255,255,255,.07);padding-top:13px}
.omniAction{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:#a3a3a3;padding:5px 8px;border-radius:12px;transition:.2s ease}
.omniAction:hover{background:rgba(255,255,255,.06);color:#fff;transform:translateY(-1px)}
.omniAction span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;color:#fff;background:linear-gradient(135deg,#f97316,#ef4444);box-shadow:0 8px 24px rgba(239,68,68,.24)}
.omniAction svg{width:18px;height:18px}.omniAction small{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.omniHint{display:flex;gap:8px;align-items:center;margin-top:12px;color:#777;font-size:12px}.liveSpark{width:7px;height:7px;border-radius:999px;background:#fb923c;box-shadow:0 0 14px #f97316}
.premiumRecent{margin-top:20px;padding:22px;border-radius:24px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06)}
.foodResultsShell{margin-top:16px}.premiumFoodResult{padding:17px!important;border-radius:18px!important;margin-bottom:10px!important;border-bottom:1px solid rgba(255,255,255,.10)!important;background:rgba(255,255,255,.045)!important;box-shadow:0 16px 34px rgba(0,0,0,.18)}
.foodResult .btn{min-width:76px}.foodKind{flex:0 0 auto}
.aiEstimateCard{padding:22px;border-radius:24px;background:radial-gradient(circle at 88% 12%,rgba(249,115,22,.14),transparent 34%),rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 60px rgba(0,0,0,.45);backdrop-filter:blur(20px)}
.aiEstimateTop{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.aiEstimateTop h3{font-size:25px;font-weight:500;margin:5px 0}.aiEstimateTop p{color:#8d8d8d;margin:0;line-height:1.5}.aiOrb{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:16px;background:linear-gradient(135deg,#f97316,#ef4444);color:#fff;font-weight:900;box-shadow:0 12px 32px rgba(239,68,68,.3)}
.aiEstimateMetrics{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:20px 0}.aiEstimateMetrics>div{padding:14px 10px;border-radius:16px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.055)}.aiEstimateMetrics strong{display:block;font-size:25px;font-weight:300;color:#fff}.aiEstimateMetrics span{display:block;margin-top:4px;color:#737373;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.11em}.aiEstimateFooter{display:flex;justify-content:space-between;gap:14px;align-items:center}.aiEstimateFooter>span{font-size:11px;color:#777;max-width:55%}.aiEstimateFooter .btn{width:auto;min-width:150px}
.photoEstimatePreview{display:grid;grid-template-columns:130px 1fr;gap:15px;align-items:center;margin-bottom:16px}.photoEstimatePreview img{width:130px;height:110px;object-fit:cover;border-radius:18px;border:1px solid rgba(255,255,255,.08)}
.dynamicMealPlan{background:rgba(255,255,255,.04)!important}.mealPlanHeader{align-items:flex-start}.eatOutBtn{display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.06);color:#fff;border-radius:15px;padding:11px 13px;font-size:12px;font-weight:800;white-space:nowrap}.eatOutBtn svg{width:19px;height:19px;color:#fb923c}.eatOutBtn:hover{background:rgba(255,255,255,.1)}
.mealTitleRow{align-items:center}.mealSwapBtn{display:flex;align-items:center;gap:5px;border:0;background:rgba(255,255,255,.06);color:#a3a3a3;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.mealSwapBtn svg{width:13px;height:13px;color:#fb923c}.mealSwapBtn:hover{background:rgba(255,255,255,.1);color:#fff}.mealMetaLine{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px;color:#999;font-size:11px}.mealMetaLine .macroPill{margin-right:1px}
.swapChoices{display:grid;gap:10px}.swapChoice{display:grid;grid-template-columns:72px 1fr auto;gap:12px;align-items:center;text-align:left;width:100%;padding:10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.045);color:#fff;border-radius:17px}.swapChoice:hover{border-color:rgba(249,115,22,.45);background:rgba(255,255,255,.07)}.swapChoice img{width:72px;height:64px;object-fit:cover;border-radius:13px}.swapChoice b,.swapChoice span{display:block}.swapChoice span{color:#858585;font-size:11px;margin-top:3px}.swapChoice strong{font-size:11px;color:#fb923c;text-transform:uppercase;letter-spacing:.08em}
.eatOutIntro h3{font-size:25px;font-weight:400;margin:5px 0}.eatOutMetrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.eatOutMetrics>div{padding:16px 10px;border-radius:17px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.06)}.eatOutMetrics strong{display:block;font-size:27px;font-weight:300}.eatOutMetrics span{display:block;margin-top:5px;color:#777;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.eatOutTip{padding:15px;border-radius:16px;background:linear-gradient(135deg,rgba(249,115,22,.1),rgba(239,68,68,.05));border:1px solid rgba(249,115,22,.15)}.eatOutTip b,.eatOutTip span{display:block}.eatOutTip span{color:#9b9b9b;margin-top:4px;font-size:12px;line-height:1.5}
.timelineDiary{overflow:hidden}.foodTimeline{margin-top:20px}.timelineItem{display:grid;grid-template-columns:22px 66px 1fr;gap:10px;position:relative;min-height:86px}.timelineRail{position:relative;display:flex;justify-content:center}.timelineRail:after{content:"";position:absolute;top:18px;bottom:-5px;width:1px;background:rgba(255,255,255,.09)}.timelineItem:last-child .timelineRail:after{display:none}.timelineRail span{position:relative;z-index:2;width:9px;height:9px;margin-top:10px;border-radius:999px;background:linear-gradient(135deg,#f97316,#ef4444);box-shadow:0 0 17px rgba(249,115,22,.5)}.timelineTime{padding-top:6px;color:#777;font-size:11px;font-weight:800}.timelineCard{margin-bottom:12px;padding:14px 15px;border-radius:17px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06)}.timelineCard b,.timelineCard small{display:block}.timelineCard small{color:#777;margin-top:3px}.timelineMacros{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.timelineMacros>*{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.055);color:#aaa;font-size:10px}.timelineMacros strong{color:#fff}.timelineRemove{border:0;background:transparent;color:#666;font-size:18px}.timelineEmpty{display:flex;gap:13px;align-items:center;margin-top:18px;padding:19px;border-radius:18px;border:1px dashed rgba(255,255,255,.08);color:#777}.timelineEmpty i{width:10px;height:10px;border-radius:999px;background:linear-gradient(135deg,#f97316,#ef4444);box-shadow:0 0 17px rgba(249,115,22,.35)}.timelineEmpty b,.timelineEmpty span{display:block}.timelineEmpty span{font-size:11px;margin-top:3px}
.chatComposer{display:block!important;padding-top:10px!important}.chatQuickActions{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 10px;scrollbar-width:none}.chatQuickActions::-webkit-scrollbar{display:none}.chatQuickChip{flex:0 0 auto;border-radius:999px;background:rgba(255,255,255,.08);color:#d4d4d4;font-size:11px;padding:9px 13px;border:1px solid rgba(255,255,255,.06);white-space:nowrap}.chatQuickChip:hover{background:rgba(255,255,255,.13);color:#fff}.chatInputRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.chatInputRow textarea{resize:none;max-height:120px;min-height:46px;border-radius:16px!important;padding:13px 14px!important;background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.09)!important;color:#fff}
@media(max-width:640px){.foodConciergeHero{padding:21px 17px}.foodConciergeHero h1{font-size:38px}.omniAction small{display:none}.omniAction{padding:4px}.omniActions{gap:5px}.aiEstimateMetrics,.eatOutMetrics{grid-template-columns:repeat(2,1fr)}.aiEstimateFooter{align-items:stretch;flex-direction:column}.aiEstimateFooter>span{max-width:none}.aiEstimateFooter .btn{width:100%}.photoEstimatePreview{grid-template-columns:1fr}.photoEstimatePreview img{width:100%;height:180px}.mealPlanHeader{display:grid!important;grid-template-columns:1fr}.eatOutBtn{width:100%;justify-content:center;margin-top:10px}.timelineItem{grid-template-columns:18px 54px 1fr}.swapChoice{grid-template-columns:58px 1fr}.swapChoice img{width:58px;height:58px}.swapChoice strong{display:none}}
.nutritionV27 > .card{background:rgba(255,255,255,.05)!important;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.10)!important;box-shadow:0 24px 60px rgba(0,0,0,.60)!important;border-radius:16px!important}
.nutritionV27 .eyebrow{font-size:11px!important;font-weight:800!important;text-transform:uppercase!important;letter-spacing:.14em!important;color:#9ca3af!important}

/* EP Fitness V28 — live barcode camera + body metrics */
body.barcodeCameraOpen{overflow:hidden}
.barcodeCameraOverlay{position:fixed;inset:0;z-index:100000;display:grid;grid-template-rows:auto 1fr auto;background:rgba(0,0,0,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#fff;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.barcodeCameraTop{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:4px 0 14px}.barcodeCameraTop>div b,.barcodeCameraTop>div span{display:block}.barcodeCameraTop>div b{font-size:16px;font-weight:700;margin-top:3px}.cameraClose{width:44px;height:44px;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:rgba(255,255,255,.07);color:#fff;font-size:26px;line-height:1}.cameraSecure{font-size:9px;font-weight:900;letter-spacing:.15em;color:#a3a3a3;padding:7px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.045)}
.barcodeCameraStage{position:relative;min-height:0;border-radius:26px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:#0b0b0b;box-shadow:0 30px 90px rgba(0,0,0,.7)}.barcodeReader{position:absolute;inset:0}.barcodeReader>div{border:0!important;padding:0!important;height:100%!important}.barcodeReader video{position:absolute!important;inset:0;width:100%!important;height:100%!important;object-fit:cover!important;border:0!important}.barcodeReader canvas{display:none!important}
.barcodeTarget{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(78vw,420px);height:160px;border:1px solid rgba(255,255,255,.42);border-radius:22px;box-shadow:0 0 0 999px rgba(0,0,0,.28),0 0 36px rgba(249,115,22,.14);pointer-events:none}.barcodeTarget:before,.barcodeTarget:after,.barcodeTarget i:before,.barcodeTarget i:after{content:"";position:absolute;width:38px;height:38px;border-color:#fb923c;border-style:solid;filter:drop-shadow(0 0 8px rgba(249,115,22,.45))}.barcodeTarget:before{left:-2px;top:-2px;border-width:3px 0 0 3px;border-radius:21px 0 0 0}.barcodeTarget:after{right:-2px;top:-2px;border-width:3px 3px 0 0;border-radius:0 21px 0 0}.barcodeTarget i:before{left:-2px;bottom:-2px;border-width:0 0 3px 3px;border-radius:0 0 0 21px}.barcodeTarget i:after{right:-2px;bottom:-2px;border-width:0 3px 3px 0;border-radius:0 0 21px 0}.barcodeTarget span{position:absolute;left:50%;bottom:-35px;transform:translateX(-50%);white-space:nowrap;color:#d4d4d4;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.barcodeCameraBottom{padding-top:14px}.barcodeCameraBottom>#barcodeCameraStatus{display:flex;align-items:center;justify-content:center;gap:8px;color:#a3a3a3;font-size:12px;min-height:28px}.cameraErrorDot,.scanSuccessDot{width:8px;height:8px;border-radius:999px;display:inline-block}.cameraErrorDot{background:#ef4444;box-shadow:0 0 12px rgba(239,68,68,.55)}.scanSuccessDot{background:#22c55e;box-shadow:0 0 12px rgba(34,197,94,.55)}.barcodeManual{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-top:10px}.barcodeManual input{min-width:0;border-radius:16px!important;background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.1)!important;color:#fff!important;padding:13px 14px!important}.barcodeManual button{border:0;border-radius:15px;padding:0 16px;background:linear-gradient(90deg,#f97316,#ef4444);color:#fff;font-weight:800}

.bodyMetricsSection{margin-top:30px}.bodyMetricCard,.physiqueBlock{padding:22px;border-radius:24px!important;background:rgba(255,255,255,.045)!important;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.1)!important;box-shadow:0 26px 70px rgba(0,0,0,.55)!important}.bodyMetricCard{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.85fr);gap:22px;align-items:center}.weightEntry label,.weightTrendTop span{display:block;color:#8b8b8b;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.weightInputRow{display:flex;align-items:baseline;gap:8px;margin:5px 0 4px}.weightInputRow input{width:190px;max-width:70%;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;color:#fff!important;font-size:clamp(38px,8vw,58px)!important;line-height:1!important;font-weight:300!important;letter-spacing:-.04em;outline:none}.weightInputRow input::placeholder{color:#4a4a4a}.weightInputRow span{color:#7d7d7d;font-size:16px;font-weight:700}.weightEntry .luxTextBtn{padding-left:0;margin-top:5px}.weightTrend{padding:14px 14px 8px;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.055)}.weightTrendTop{display:flex;justify-content:space-between;gap:12px;align-items:center}.weightTrendTop b{font-size:13px;font-weight:700;color:#d4d4d4}.weightSparkline{width:100%;height:74px;margin-top:7px;overflow:visible}.weightSparkline path{filter:drop-shadow(0 0 7px rgba(249,115,22,.28))}.sparklineEmpty{height:74px;display:grid;place-items:center;position:relative;color:#555;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.sparklineEmpty:after{content:"";position:absolute;left:5%;right:5%;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent)}.sparklineEmpty span{position:relative;z-index:1;background:#1a1a1a;padding:0 8px}
.physiqueBlock{margin-top:14px}.physiqueHeader{align-items:flex-start}.physiqueHeader h3{margin:4px 0 0;font-size:22px;font-weight:500}.privacyPill{font-size:9px;font-weight:900;letter-spacing:.11em;color:#9ca3af;padding:7px 9px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(255,255,255,.04)}.physiqueEmpty{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:15px;align-items:center;margin-top:18px;padding:18px;border:1px dashed rgba(255,255,255,.1);border-radius:19px;background:rgba(255,255,255,.025)}.physiqueEmptyIcon{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:linear-gradient(135deg,rgba(249,115,22,.2),rgba(239,68,68,.2));color:#fb923c;font-size:24px}.physiqueEmpty b,.physiqueEmpty span{display:block}.physiqueEmpty span{margin-top:4px;color:#777;font-size:11px}.uploadPhotoBtn{cursor:pointer}.singlePhysique{display:grid;grid-template-columns:minmax(130px,220px) 1fr;gap:18px;align-items:center;margin-top:18px}.singlePhysique img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:18px;box-shadow:0 18px 46px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.08)}.singlePhysique b{display:block;font-size:18px;margin-top:5px}.singlePhysique p{max-width:440px}
.photoCompareWrap{margin-top:18px}.photoCompareLabels{display:flex;justify-content:space-between;margin-bottom:8px;color:#9a9a9a;font-size:9px;font-weight:900;letter-spacing:.13em}.photoCompare{position:relative;aspect-ratio:4/5;max-height:620px;overflow:hidden;border-radius:20px;background:#0b0b0b;box-shadow:0 24px 60px rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.08);touch-action:none}.photoCompareBase,.photoCompareAfter{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none}.photoCompareAfter{transition:clip-path .03s linear}.photoCompareDivider{position:absolute;top:0;bottom:0;width:2px;transform:translateX(-1px);background:rgba(255,255,255,.92);box-shadow:0 0 14px rgba(255,255,255,.34);pointer-events:none}.photoCompareDivider i{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:42px;height:42px;border-radius:999px;background:rgba(18,18,18,.88);border:1px solid rgba(255,255,255,.2);color:#fff;font-style:normal;font-size:15px;box-shadow:0 8px 24px rgba(0,0,0,.45)}.photoCompareRange{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;cursor:ew-resize!important;margin:0!important;padding:0!important;z-index:4}.photoCompareFooter{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:10px;color:#777;font-size:11px}
.aiEstimateError .aiOrb{background:rgba(239,68,68,.18);color:#fca5a5;border:1px solid rgba(239,68,68,.25);box-shadow:none}.aiEstimateError>.btn{margin-top:18px}

@media(max-width:700px){.barcodeCameraOverlay{padding-left:10px;padding-right:10px}.barcodeCameraTop{grid-template-columns:auto 1fr}.cameraSecure{display:none}.barcodeTarget{width:min(84vw,360px);height:130px}.bodyMetricCard{grid-template-columns:1fr;gap:15px}.weightTrend{min-height:112px}.physiqueEmpty{grid-template-columns:auto 1fr}.physiqueEmpty .btn{grid-column:1/-1;width:100%}.singlePhysique{grid-template-columns:1fr}.singlePhysique img{max-height:460px}.photoCompare{max-height:520px}.bodyMetricCard,.physiqueBlock{padding:18px}.weightInputRow input{max-width:75%;font-size:48px!important}}


/* V29 — AI photo plumbing + functional weight save polish */
.weightSaveRow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}
.aiPhotoLoading{display:grid;gap:12px}
.aiEstimatePhoto{width:100%;max-height:280px;object-fit:cover;border-radius:18px;margin-bottom:16px;box-shadow:0 18px 50px rgba(0,0,0,.42)}
#todayWeightInput{appearance:textfield;-moz-appearance:textfield;background:transparent;border:0!important;box-shadow:none!important;padding:0!important;min-width:0;font-size:clamp(2.1rem,7vw,3.7rem);font-weight:300;color:#fff;line-height:1}
#todayWeightInput::-webkit-outer-spin-button,#todayWeightInput::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* V30 — secure in-app AI Vision connection */
.aiSetupCard{position:relative;overflow:hidden}
.aiSetupCard:before{content:"";position:absolute;inset:-40% auto auto -15%;width:220px;height:220px;border-radius:999px;background:radial-gradient(circle,rgba(249,115,22,.16),transparent 68%);pointer-events:none}
.aiConnected{color:#fb923c;font-weight:800;letter-spacing:.08em}
.aiDisconnected{color:#9ca3af;font-weight:800;letter-spacing:.08em}
.aiSetupModal{text-align:left}.aiSetupModal h3{margin:.35rem 0 .4rem}.aiShield{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;font-weight:900;color:white;background:linear-gradient(135deg,#f97316,#ef4444);box-shadow:0 16px 34px rgba(0,0,0,.45)}
.aiSetupRequired{gap:12px}

/* V32 live coaching */
.streakHeader{align-items:center}.streakPill{padding:8px 12px;border-radius:999px;background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.28);font-weight:800;font-size:13px;white-space:nowrap}.startWorkoutDock{margin-top:22px;padding:18px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.045);border-radius:18px;display:flex;align-items:center;justify-content:space-between;gap:18px}.startWorkoutDock>div{display:flex;flex-direction:column;gap:4px}.startWorkoutDock b{font-size:18px}.startWorkoutDock small{color:#9ca3af}.startWorkoutDock .btn{width:auto;min-width:190px}.startWorkoutDock.rest{opacity:.78}.groceryActions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.coachAlertsHost{display:grid;gap:9px;margin-top:16px}.coachAlertItem{width:100%;text-align:left;border:1px solid rgba(255,255,255,.08);background:#171717;border-radius:14px;padding:14px;color:white;display:grid;grid-template-columns:1fr auto;gap:16px}.coachAlertItem.unread{border-color:rgba(249,115,22,.45);box-shadow:0 0 0 1px rgba(249,115,22,.08) inset}.coachAlertItem div{display:flex;flex-direction:column;gap:4px}.coachAlertItem span,.coachAlertItem small{color:#9ca3af}.habitEditor{display:grid;gap:10px;margin:18px 0}.habitEditRow{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:10px;align-items:center;background:#171717;border:1px solid rgba(255,255,255,.08);padding:10px;border-radius:14px}.habitEditRow input{background:#111;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:white;padding:11px}.habitEditRow span{font-size:12px;text-transform:uppercase;color:#9ca3af}.workoutDateQuick{margin-top:12px}.workoutDateQuick label{display:flex;gap:10px;align-items:center;color:#9ca3af;font-size:12px}.workoutDateQuick input{background:#111;border:1px solid rgba(255,255,255,.1);color:white;padding:8px 10px;border-radius:10px}@media(max-width:700px){.startWorkoutDock{align-items:stretch;flex-direction:column}.startWorkoutDock .btn{width:100%}.groceryActions{grid-template-columns:1fr}.streakHeader{align-items:flex-start;gap:8px;flex-direction:column}.habitEditRow{grid-template-columns:1fr}.coachAlertItem{grid-template-columns:1fr}}

/* V33 premium systems */
.travelModeBar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;margin-bottom:18px;border:1px solid rgba(255,255,255,.08);border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.05),rgba(255,110,20,.04));box-shadow:0 18px 45px rgba(0,0,0,.28)}.travelModeBar.active{border-color:rgba(255,91,35,.34);background:linear-gradient(135deg,rgba(255,112,18,.16),rgba(255,52,72,.09))}.travelModeBar b,.travelModeBar small{display:block}.travelModeBar b{font-size:18px;margin:3px 0}.travelModeBar small{color:#9aa0aa}.travelToggle{border:0;background:#2b2d31;border-radius:999px;padding:6px 10px 6px 6px;display:flex;align-items:center;gap:8px;color:#bbb;font-weight:800}.travelToggle i{width:28px;height:28px;border-radius:50%;background:#777;display:block;transition:.2s}.travelToggle.on{background:linear-gradient(90deg,#ff7a10,#ff394d);color:#fff}.travelToggle.on i{background:#fff;transform:translateX(4px)}
.wearableGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}.wearableWidget{padding:20px;border:1px solid rgba(255,255,255,.09);border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.025));backdrop-filter:blur(18px)}.wearableWidget span{font-size:11px;letter-spacing:.13em;color:#ff8a2b;font-weight:900}.wearableWidget b{font-size:30px;display:block;margin:8px 0 4px}.wearableWidget small{color:#9299a5}.wearableConnectRow{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}.wearableSetup{text-align:center}.wearableLogo{margin:auto;width:64px;height:64px;border-radius:20px;display:grid;place-items:center;font-size:34px;background:linear-gradient(135deg,#ff7a10,#ff394d);box-shadow:0 12px 32px rgba(255,76,45,.25)}.wearableOptions{display:grid;gap:10px;margin-top:18px}.wearableOption{text-align:left;padding:16px;border:1px solid rgba(255,255,255,.09);background:#191a1d;border-radius:16px;color:#fff}.wearableOption b,.wearableOption span{display:block}.wearableOption span{color:#8f96a2;margin-top:4px}.wearableOption.disabled{opacity:.5}
.travelSurvival{border-color:rgba(255,111,18,.25)!important}.travelRules{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.travelRules article{padding:16px;border-radius:16px;background:#18191c;border:1px solid rgba(255,255,255,.07)}.travelRules b,.travelRules span{display:block}.travelRules span{font-size:13px;color:#9aa0aa;margin-top:7px;line-height:1.5}
.premiumQuickLinks{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0 40px}.premiumQuickLinks button{border:1px solid rgba(255,255,255,.08);background:#17181b;border-radius:20px;color:#fff;text-align:left;padding:20px}.premiumQuickLinks span,.premiumQuickLinks b{display:block}.premiumQuickLinks span{font-size:10px;letter-spacing:.16em;color:#ff8624;font-weight:900}.premiumQuickLinks b{margin-top:8px;font-size:16px}.executiveBriefStory{padding:28px;border-radius:26px;background:linear-gradient(145deg,#ff7a10,#ff344e 62%,#a20f2b);color:#fff;box-shadow:0 28px 70px rgba(255,54,63,.23)}.briefBrand{font-size:11px;font-weight:900;letter-spacing:.16em;opacity:.8}.executiveBriefStory h2{font-size:32px;margin:12px 0 4px}.executiveBriefStory p{opacity:.82}.briefMetric{padding:15px 0;border-top:1px solid rgba(255,255,255,.25);display:flex;justify-content:space-between;align-items:end}.briefMetric span{font-size:13px;opacity:.8}.briefMetric b{font-size:26px}.briefFooter{padding-top:16px;font-weight:800}
.vaultHero{padding:32px 0 24px}.vaultHero h1{font-size:42px;margin:8px 0}.vaultHero p{color:#989faa}.vaultShelf{margin:16px 0 30px}.vaultScroller{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,32%);overflow-x:auto;gap:14px;padding:10px 0 16px;scroll-snap-type:x mandatory}.vaultCard{scroll-snap-align:start;border:1px solid rgba(255,255,255,.08);background:#17181b;border-radius:18px;overflow:hidden}.vaultThumb{aspect-ratio:16/9;background:radial-gradient(circle at 25% 25%,rgba(255,122,16,.28),transparent 45%),linear-gradient(145deg,#212226,#0d0e10);display:grid;place-items:center;position:relative}.vaultThumb span{font-size:42px;font-weight:1000;letter-spacing:-.08em}.vaultThumb i{position:absolute;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#ff7a10,#ff394d);font-style:normal}.vaultCard>div:last-child{padding:15px}.vaultCard b,.vaultCard span{display:block}.vaultCard span{color:#939aa5;font-size:13px;margin-top:6px}.vaultPlayer iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:16px}.vaultComingSoon{padding:28px;border:1px dashed rgba(255,255,255,.16);border-radius:16px;text-align:center;color:#9aa0aa}
@media(max-width:700px){.wearableGrid,.travelRules,.premiumQuickLinks{grid-template-columns:1fr}.vaultScroller{grid-auto-columns:82%}.travelModeBar{align-items:flex-start}.vaultHero h1{font-size:34px}}
.clientBottomNav{position:sticky;bottom:14px;z-index:30;margin:26px auto 10px;max-width:520px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:7px;border:1px solid rgba(255,255,255,.09);border-radius:20px;background:rgba(15,16,18,.88);backdrop-filter:blur(22px);box-shadow:0 18px 50px rgba(0,0,0,.4)}.clientBottomNav button{border:0;background:transparent;color:#8e949e;border-radius:14px;padding:10px 8px;display:grid;place-items:center;gap:3px}.clientBottomNav button span{font-size:18px}.clientBottomNav button b{font-size:11px}.clientBottomNav button.active{color:#fff;background:linear-gradient(135deg,rgba(255,122,16,.2),rgba(255,52,78,.16))}
