:root{--ink:#0d1016;--aqua:#4fcfbb;--forest:#173c38;--paper:#fffdfa;--muted:#687078;--blue:#5c79e7;--pink:#e45b92;--violet:#a66cd4;--line:rgba(13,16,22,.09);font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#11151a;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#11151a}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}.hidden{display:none!important}.app-stage{min-height:100vh;display:grid;place-items:start center;background:radial-gradient(circle at 0 0,rgba(79,207,187,.22),transparent 28%),radial-gradient(circle at 100% 5%,rgba(245,184,156,.23),transparent 26%),#e9eeee}.app-shell{position:relative;width:min(100%,500px);min-height:100dvh;padding-bottom:102px;overflow:hidden;background:linear-gradient(145deg,#e9f7f4 0%,#f7f2ed 52%,#edf0f1 100%);box-shadow:0 0 55px rgba(0,0,0,.22)}.screen{display:none;padding:calc(18px + env(safe-area-inset-top)) 20px 28px}.screen.active{display:block}.top-header,.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px}.top-header h1,.app-header h1{font-family:Georgia,serif;font-size:34px;line-height:1;margin:4px 0 0}.app-header p,.eyebrow{font-size:15px;font-weight:800;color:#687078;margin:0}.header-symbol{width:48px;height:48px;border-radius:16px;background:rgba(255,255,255,.78);display:grid;place-items:center;font-size:27px}.offline-banner{position:sticky;z-index:20;top:0;padding:10px 18px;background:#fff1c8;color:#634f13;font-size:14px;font-weight:750;text-align:center}.balance-card{padding:18px;border-radius:28px;background:rgba(255,253,249,.93);border:1px solid rgba(255,255,255,.85);box-shadow:0 16px 42px rgba(13,16,22,.1)}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:16px;font-weight:850}.card-heading b{padding:8px 10px;border-radius:13px;background:#ddf6f1;font-size:15px}.gauge{position:relative;width:235px;height:132px;margin:8px auto 0}.gauge svg{width:100%;height:100%;overflow:visible}.gauge path{fill:none;stroke-width:19;stroke-linecap:round}.gauge-track{stroke:#dbe2e2}.gauge-fill{stroke:var(--aqua);stroke-dasharray:0 100;transition:stroke-dasharray .45s ease}.gauge>div{position:absolute;inset:46px 0 auto;display:grid;justify-items:center}.gauge strong{font-family:Georgia,serif;font-size:44px;line-height:1}.gauge span{margin-top:4px;font-size:15px;color:var(--muted)}.energy-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;text-align:center}.energy-stats span{display:grid;gap:5px;color:var(--muted);font-size:14px}.energy-stats b{color:var(--ink);font-size:20px}.balance-message{margin:17px auto 16px;text-align:center;color:#555f66;font-size:16px;line-height:1.42}.macro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.macro-grid>div{min-width:0;padding:11px 9px;border:1px solid #dce1df;border-radius:17px;background:white}.macro-grid span,.macro-grid b{display:block}.macro-grid span{font-size:14px;color:#555e63}.macro-grid b{margin:6px 0 9px;font-size:15px;white-space:nowrap}.bar{display:block;height:8px;border-radius:9px;background:#e5e8e7;overflow:hidden}.bar i{display:block;height:100%;border-radius:inherit}.check-card{width:100%;display:grid;grid-template-columns:52px 1fr 25px;align-items:center;gap:12px;margin:14px 0 0;padding:14px;border:0;border-radius:22px;background:linear-gradient(130deg,#0d1016,#1b3031);color:white;text-align:left;box-shadow:0 12px 30px rgba(13,16,22,.16)}.check-icon{width:52px;height:52px;border-radius:17px;background:var(--aqua);color:var(--ink);display:grid;place-items:center;font-size:27px;font-weight:900}.check-card>span:nth-child(2){display:grid;gap:3px}.check-card small{font-size:14px;color:var(--aqua);font-weight:900;letter-spacing:.06em}.check-card b,.check-card em{font-size:16px;line-height:1.35}.check-card em{color:#c7cdd0;font-style:normal}.section-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:25px 3px 13px}.section-title h2{font-family:Georgia,serif;font-size:29px;margin:0}.section-title button{border:0;border-radius:14px;background:rgba(255,255,255,.78);padding:10px 13px;font-weight:800}.meal-list{overflow:hidden;border-radius:25px;background:rgba(255,255,255,.92);box-shadow:0 10px 30px rgba(13,16,22,.08)}.meal-row{display:grid;grid-template-columns:54px 1fr 48px;align-items:center;gap:11px;padding:14px;border-bottom:1px solid #e2e5e3}.meal-row:last-child{border:0}.meal-symbol{width:52px;height:52px;border-radius:17px;background:#eef4ed;display:grid;place-items:center;font-size:27px}.meal-copy{border:0;background:transparent;text-align:left;padding:0}.meal-copy b,.meal-copy span{display:block}.meal-copy b{font-size:18px}.meal-copy span{margin-top:4px;font-size:15px;color:var(--muted)}.meal-progress{display:block;height:7px;margin-top:8px;border-radius:8px;background:#e5e8e7;overflow:hidden}.meal-progress i{display:block;height:100%;background:var(--aqua);border-radius:inherit}.quick-add{width:46px;height:46px;border:0;border-radius:50%;background:var(--ink);color:var(--aqua);font-size:29px}.recent-log{margin-top:13px;padding:15px;border-radius:22px;background:rgba(255,255,255,.91)}.recent-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.recent-head h3{margin:0;font-family:Georgia,serif;font-size:21px}.recent-head button{border:0;background:transparent;color:#744;font-weight:750}.log-row{display:grid;grid-template-columns:1fr auto 34px;align-items:center;gap:8px;padding:12px 0;border-top:1px solid #e5e7e6}.log-row span{display:grid;gap:4px}.log-row small{font-size:14px;color:var(--muted)}.log-row button{border:0;background:transparent;font-size:20px}.wellness-title p{margin:4px 0 0;color:var(--muted);font-size:15px}.wellness-title>span{padding:7px 10px;border-radius:12px;background:#ddf6f1;font-size:14px;font-weight:800}.wellness-card{padding:13px;border-radius:25px;background:rgba(255,255,255,.9)}.wellness-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wellness-item{display:grid;grid-template-columns:43px 1fr;gap:9px;align-items:start;border:0;border-radius:18px;background:#f3f5f4;padding:11px;text-align:left}.wellness-icon{width:42px;height:42px;border-radius:14px;background:#dff5f1;display:grid;place-items:center;font-size:21px}.wellness-copy{display:grid;gap:2px}.wellness-copy b{font-size:14px}.wellness-copy strong{font-size:16px}.wellness-copy small{font-size:13px;color:var(--muted)}.wellness-tip{margin-top:11px;padding:12px;border-radius:16px;background:#e8f5f2;font-size:14px;line-height:1.4}.app-header{margin-bottom:18px}.entry-modes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.entry-modes button{min-width:0;height:80px;border:1px solid rgba(13,16,22,.08);border-radius:18px;background:rgba(255,255,255,.77);color:var(--ink);font-size:25px}.entry-modes button span{display:block;margin-top:5px;font-size:13px;font-weight:800}.entry-modes button.active{background:var(--ink);color:var(--aqua)}.food-search{display:grid;grid-template-columns:27px 1fr auto;align-items:center;gap:7px;margin:15px 0 11px;padding:7px 7px 7px 14px;border-radius:19px;background:white}.food-search>span{font-size:24px}.food-search input{min-width:0;border:0;outline:0;background:transparent;font-size:16px}.food-search button{border:0;border-radius:14px;background:var(--ink);color:var(--aqua);padding:12px 14px;font-weight:850}.search-filters{display:flex;gap:8px}.search-filters button,.diet-tags span{border:1px solid rgba(13,16,22,.08);border-radius:14px;background:rgba(255,255,255,.76);padding:9px 12px;font-size:14px;font-weight:750}.source-note{margin:15px 4px;color:#617071;font-size:14px;line-height:1.4}.result-head{display:flex;align-items:end;justify-content:space-between;gap:10px}.result-head h2{font-family:Georgia,serif;font-size:27px;margin:7px 0 10px}.result-head span{margin-bottom:12px;font-size:13px;color:var(--muted)}.food-results{display:grid;gap:10px}.food-result{display:grid;grid-template-columns:52px 1fr auto 43px;align-items:center;gap:9px;padding:13px;border-radius:21px;background:rgba(255,255,255,.92)}.food-photo{width:52px;height:52px;border-radius:16px;background:#eaf3e8;display:grid;place-items:center;font-size:24px}.food-main{min-width:0;border:0;background:transparent;text-align:left;padding:0}.food-main b,.food-main span,.food-main small{display:block}.food-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px}.food-main span{margin-top:4px;color:var(--muted);font-size:14px}.food-main small{margin-top:5px;color:#4d6d68;font-size:13px}.result-calories{text-align:right;font-size:18px;font-weight:850}.result-calories small{display:block;color:var(--muted);font-size:13px}.result-add{width:42px;height:42px;border:2px solid var(--ink);border-radius:50%;background:white;font-size:25px}.empty-state{padding:35px 20px;border-radius:22px;background:rgba(255,255,255,.75);text-align:center}.plan-hero{position:relative;height:335px;overflow:hidden;border-radius:29px}.plan-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 42%,rgba(13,16,22,.85))}.plan-hero img{width:100%;height:100%;object-fit:cover}.plan-hero div{position:absolute;z-index:1;left:22px;right:22px;bottom:22px;color:white}.plan-hero span{font-size:14px;letter-spacing:.08em}.plan-hero h2{font-family:Georgia,serif;font-size:34px;margin:7px 0}.plan-hero p{font-size:16px;margin:0}.diet-tags{display:flex;gap:8px;overflow:auto;margin:13px 0}.diet-tags span{white-space:nowrap}.plan-date{margin-top:22px}.plan-date h2{font-size:27px}.plan-meal{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;margin:11px 0;padding:17px 17px 17px 23px;border-radius:22px;background:rgba(255,255,255,.92);overflow:hidden}.plan-meal:before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--aqua)}.plan-meal.amber:before{background:#e4aa33}.plan-meal.coral:before{background:#d87963}.plan-meal div{display:grid;gap:5px}.plan-meal small,.plan-meal span{color:var(--muted);font-size:14px}.plan-meal b{font-size:17px}.target-summary{padding:18px;border-radius:25px;background:var(--forest);color:white;box-shadow:0 14px 32px rgba(13,16,22,.2)}.target-summary small,.target-summary span,.target-summary strong{display:block}.target-summary>span{color:var(--aqua);font-size:13px;font-weight:900;letter-spacing:.07em}.target-summary strong{font-family:Georgia,serif;font-size:48px;margin:9px 0 2px}.target-summary small{color:#cbd2d3;font-size:15px}.target-summary p{margin:14px 0 0;padding-top:12px;border-top:1px solid rgba(255,255,255,.15);color:#dfe4e4;font-size:14px;line-height:1.45}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:13px 0;padding:5px;border-radius:17px;background:rgba(255,255,255,.72)}.mode-switch button{border:0;border-radius:13px;background:transparent;padding:11px;font-weight:850}.mode-switch button.active{background:var(--aqua)}.settings-card{margin-top:12px;padding:16px;border-radius:23px;background:rgba(255,255,255,.92);box-shadow:0 9px 26px rgba(13,16,22,.07)}.settings-title{margin-bottom:13px}.settings-title h2{font-family:Georgia,serif;font-size:23px;margin:0}.settings-title p{margin:4px 0 0;color:var(--muted);font-size:14px;line-height:1.4}.settings-form,.target-inputs{display:grid;gap:11px}.two-cols,.target-inputs{grid-template-columns:1fr 1fr}.settings-form label,.target-inputs label{display:grid;gap:6px;min-width:0}.settings-form label>span,.target-inputs label>span{font-size:14px;font-weight:800;color:#4f575d}.settings-form label.wide{grid-column:1/-1}.settings-form select,.settings-form input,.target-inputs input{width:100%;height:47px;border:1px solid #d8ddda;border-radius:13px;background:#fff;color:var(--ink);padding:0 11px;font-size:16px;outline:0}.settings-form input:focus,.settings-form select:focus,.target-inputs input:focus{border-color:var(--aqua);box-shadow:0 0 0 3px rgba(79,207,187,.2)}.unit-input{position:relative}.unit-input input{padding-right:50px}.unit-input i{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--muted);font-style:normal}.pace-value{text-align:center;margin:5px 0 18px}.pace-value strong{display:block;font-family:Georgia,serif;font-size:39px}.pace-value span{display:block;color:var(--muted);margin-top:3px}.pace-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pace-options button{height:60px;border:2px solid #d9dfdd;border-radius:16px;background:#fff;font-size:19px;font-weight:850}.pace-options button span{font-size:13px;color:var(--muted)}.pace-options button.active{border-color:var(--ink);background:var(--aqua)}.slider-ends{display:flex;justify-content:space-between;margin-top:10px;color:var(--muted);font-size:14px}.preference-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.preference-grid button{min-height:48px;border:1px solid #d9dfdc;border-radius:14px;background:#fff;padding:10px;font-size:14px;font-weight:750;text-align:left}.preference-grid button.active{border-color:var(--aqua);background:#dff5f1}.target-inputs input:disabled{background:#edf1ef;color:#5d656a}.restore-auto{width:100%;margin-top:13px;border:0;border-radius:14px;background:#edf1ef;padding:12px;font-weight:800}.macro-control{margin-top:17px}.macro-control>div{display:flex;align-items:center;justify-content:space-between}.macro-control label,.macro-control output{font-weight:850}.macro-control input{width:100%;accent-color:var(--aqua);margin-top:9px}.save-settings{width:100%;margin:14px 0 4px;border:0;border-radius:17px;background:var(--ink);color:var(--aqua);padding:15px;font-size:16px;font-weight:900}.bottom-nav{position:absolute;z-index:30;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);padding:9px 10px calc(9px + env(safe-area-inset-bottom));background:rgba(13,16,22,.95);backdrop-filter:blur(18px)}.bottom-nav button{border:0;background:transparent;color:#aab0b5;padding:5px;font-size:14px}.bottom-nav span,.bottom-nav b{display:block}.bottom-nav span{width:53px;margin:auto;border-radius:15px;padding:5px;font-size:25px}.bottom-nav b{margin-top:3px}.bottom-nav button.active{color:var(--aqua)}.bottom-nav button.active span{background:var(--aqua);color:var(--ink)}.sheet-backdrop{position:absolute;z-index:50;inset:0;background:rgba(13,16,22,.56);display:flex;align-items:flex-end}.food-sheet{width:100%;max-height:88%;overflow:auto;padding:22px 20px calc(24px + env(safe-area-inset-bottom));border-radius:30px 30px 0 0;background:#fff}.sheet-top{display:flex;align-items:start;justify-content:space-between;gap:15px}.sheet-top button{width:44px;height:44px;border:0;border-radius:14px;background:#eef1ef;font-size:24px}.food-sheet h2{font-family:Georgia,serif;font-size:29px;margin:10px 0 5px}.food-sheet>p{color:var(--muted);margin:0}.calorie-number{display:flex;align-items:end;gap:10px;margin:20px 0}.calorie-number strong{font-family:Georgia,serif;font-size:50px}.calorie-number span{padding-bottom:7px;color:var(--muted)}.portion-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.portion-picker button{border:1px solid #dce1df;border-radius:13px;background:#fff;padding:10px}.portion-picker button.active{background:var(--aqua);border-color:var(--ink)}.nutrition-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:17px 0}.nutrition-grid div{padding:11px;border-radius:15px;background:#f1f4f3}.nutrition-grid b,.nutrition-grid span{display:block}.nutrition-grid span{font-size:13px;color:var(--muted);margin:4px 0 7px}.add-food{width:100%;border:0;border-radius:17px;background:var(--ink);color:var(--aqua);padding:15px;font-size:16px;font-weight:900}.check-flow{position:absolute;z-index:60;inset:0;overflow:auto;padding:calc(18px + env(safe-area-inset-top)) 18px 28px;background:linear-gradient(155deg,#e7f7f3,#f7f2ec 55%,#eee8f2)}.check-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.check-header button{width:46px;height:46px;border:0;border-radius:14px;background:white;font-size:23px}.check-header span{text-align:center}.check-header small,.check-header b{display:block}.check-header small{font-size:13px;letter-spacing:.07em;color:#28786d}.check-header b{font-size:17px;margin-top:2px}.check-intro{text-align:center;margin:25px auto 20px}.check-intro .big-icon{width:72px;height:72px;margin:auto;border-radius:22px;background:var(--ink);color:var(--aqua);display:grid;place-items:center;font-size:35px}.check-intro h1{font-family:Georgia,serif;font-size:34px;margin:13px 0 7px}.check-intro p{color:var(--muted);font-size:16px;line-height:1.45}.sample-block{margin:17px 0}.sample-block div{display:flex;gap:8px;overflow:auto;margin-top:8px}.sample-block button{white-space:nowrap;border:1px solid var(--line);border-radius:13px;background:white;padding:10px}.label-editor{display:grid;gap:8px;font-weight:800}.label-editor textarea{min-height:145px;border:1px solid #ccd8d5;border-radius:18px;padding:13px;font-size:16px;line-height:1.45;resize:vertical}.complete-check{display:flex;gap:10px;margin:12px 0;padding:12px;border-radius:16px;background:rgba(255,255,255,.72)}.complete-check input{width:23px;height:23px;accent-color:var(--aqua)}.check-primary{width:100%;border:0;border-radius:18px;background:var(--ink);color:var(--aqua);padding:16px;font-size:17px;font-weight:900}.check-note{color:var(--muted);font-size:14px;line-height:1.4;text-align:center}.verdict{padding:23px;border-radius:26px;text-align:center}.verdict.safe{background:#dff5f1}.verdict.unsafe{background:#f6d6ce}.verdict.unknown{background:#f5e7bd}.verdict-symbol{width:74px;height:74px;margin:auto;border-radius:50%;background:#29766c;color:white;display:grid;place-items:center;font-size:38px}.verdict.unsafe .verdict-symbol{background:#a8483b}.verdict.unknown .verdict-symbol{background:#8b6818}.verdict h1{font-family:Georgia,serif;font-size:35px;margin:12px 0 7px}.verdict p{font-size:16px;line-height:1.45}.verdict-list{margin:13px 0;overflow:hidden;border-radius:20px;background:white}.verdict-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:13px;border-bottom:1px solid #e5e8e7}.verdict-row:last-child{border:0}.verdict-row b,.verdict-row small{display:block}.verdict-row small{margin-top:4px;color:var(--muted);font-size:14px}.verdict-row strong{align-self:center}.disclaimer{padding:12px;border-radius:15px;background:#fff0e7;color:#6e4938;font-size:14px;line-height:1.45}.toast{position:absolute;z-index:90;left:50%;bottom:105px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 36px);padding:12px 16px;border-radius:14px;background:var(--ink);color:white;font-size:14px;font-weight:750;box-shadow:0 10px 30px rgba(0,0,0,.25)}@media(min-width:700px){.app-stage{padding:24px 0}.app-shell{min-height:calc(100dvh - 48px);max-height:920px;border-radius:34px}.bottom-nav{border-radius:0 0 34px 34px}.sheet-backdrop,.check-flow{border-radius:34px}}@media(max-width:370px){.screen{padding-left:15px;padding-right:15px}.macro-grid,.nutrition-grid{gap:5px}.macro-grid>div{padding:9px 6px}.macro-grid span{font-size:12px}.macro-grid b{font-size:13px}.two-cols,.target-inputs{grid-template-columns:1fr}.settings-form label.wide{grid-column:auto}.entry-modes button span{font-size:12px}}

.brand{display:flex;align-items:center;gap:11px;min-width:0}
.brand-logo{width:45px;height:45px;border-radius:14px;flex:none}
.icon-btn{width:48px;height:48px;flex:none;border:0;border-radius:16px;background:rgba(255,255,255,.78);display:grid;place-items:center;font-size:23px;color:var(--ink)}
.icon-btn[aria-expanded="true"]{background:var(--ink);color:var(--aqua)}
.menu-panel{position:absolute;z-index:70;top:calc(16px + env(safe-area-inset-top));right:18px;width:min(300px,calc(100% - 36px));max-height:70%;overflow:auto;padding:8px;border-radius:20px;background:#fffdfa;box-shadow:0 18px 44px rgba(13,16,22,.28)}
.menu-panel[hidden]{display:none}
.menu-group+.menu-group{margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}
.menu-title{margin:9px 12px 5px;font-size:13px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.menu-row{display:block;width:100%;border:0;border-radius:13px;background:transparent;padding:12px;text-align:left;font-size:15px;font-weight:750;color:var(--ink)}
.menu-row:hover,.menu-row:focus-visible{background:#eef4f2}
.menu-versione{margin:8px 12px 6px;font-size:13px;color:var(--muted)}
.doc-sheet{position:absolute;z-index:80;inset:0;overflow:auto;background:rgba(13,16,22,.56)}
.doc-inner{margin-top:14%;padding:22px 20px calc(26px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;background:#fffdfa;min-height:86%}
.doc-top{display:flex;align-items:start;justify-content:space-between;gap:14px}
.doc-top h2{font-family:Georgia,serif;font-size:28px;margin:4px 0 0}
.doc-top button{width:44px;height:44px;flex:none;border:0;border-radius:14px;background:#eef1ef;font-size:24px}
.doc-sheet p,.doc-sheet li{font-size:15px;line-height:1.55;color:#3d4449}
.doc-sheet ul{padding-left:20px}
.doc-sheet code{background:#eef1ef;border-radius:6px;padding:1px 5px;font-size:14px}

.screen.paged.active{display:flex;flex-direction:column;height:100dvh;padding-bottom:calc(102px + env(safe-area-inset-bottom))}
.screen.paged>.top-header,.screen.paged>.app-header{flex:none}
.pager{flex:1;min-height:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.pager::-webkit-scrollbar{display:none}
.page{flex:0 0 100%;min-width:100%;overflow-y:auto;overscroll-behavior-y:contain;scroll-snap-align:start;scroll-snap-stop:always;padding-bottom:10px;scrollbar-width:none}
.page::-webkit-scrollbar{display:none}
.section-title.first{margin-top:0}
.pager-dots{flex:none;display:flex;justify-content:center;align-items:center;gap:7px;padding:11px 0 3px}
.pager-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:rgba(13,16,22,.22)}
.pager-dots button[aria-current="true"]{width:22px;border-radius:5px;background:var(--ink)}
@media(prefers-reduced-motion:reduce){.pager{scroll-behavior:auto}}

/* Alleggerimento: i contenuti stanno direttamente sullo sfondo. Restano
   pieni solo i comandi su cui si preme e i colori che portano significato
   (il verdetto dell'etichetta, la barra del pasto nel piano). */
.balance-card,.meal-list,.recent-log,.wellness-card,.settings-card,.food-result,.plan-meal,.empty-state{
  background:transparent;border:0;box-shadow:none;padding-left:0;padding-right:0}
.balance-card{padding-top:0}
.macro-grid>div,.nutrition-grid div{background:transparent;border:0;padding:0}
.macro-grid{gap:14px}
.nutrition-grid div{padding:0}
.wellness-item{background:transparent;padding:11px 0}
.wellness-icon{background:transparent;width:32px;height:32px;border-radius:0;font-size:22px;justify-items:start}
.wellness-item{grid-template-columns:34px 1fr}
.wellness-tip{background:transparent;padding:12px 0 0;border-top:1px solid var(--line);border-radius:0}
.meal-symbol,.food-photo{background:transparent;width:38px;height:38px;border-radius:0}
.meal-row{grid-template-columns:40px 1fr 48px;padding:14px 0}
.food-result{grid-template-columns:38px 1fr auto 43px;padding:13px 0;border-bottom:1px solid var(--line);border-radius:0}
.food-results{gap:0}
.plan-meal{padding:15px 0 15px 18px;border-radius:0;border-bottom:1px solid var(--line)}
.plan-meal:before{border-radius:3px}
.target-summary{box-shadow:none}
.empty-state{padding:35px 0}
.settings-card{margin-top:22px}
.recent-log{padding-top:0}
.settings-card.first{margin-top:0}
.wellness-title.first{margin-top:0}
.target-summary{padding:16px}
.target-summary strong{font-size:38px;margin:6px 0 2px}
.target-summary p{margin-top:11px;padding-top:10px}
.settings-form select,.settings-form input,.target-inputs input{height:44px}
.settings-form,.target-inputs{gap:9px}
.mode-switch{margin:11px 0}

/* L'altezza della schermata sfogliabile deve seguire quella del guscio,
   che sopra i 700px e' limitato: altrimenti i puntini finiscono sotto il
   bordo visibile e la pagina sembra priva di indicatori. */
@media(min-width:700px){
  .screen.paged.active{height:min(calc(100dvh - 48px),920px)}
}

/* La barra resta agganciata al fondo dello schermo anche quando la schermata
   scorre: prima era in fondo al guscio, quindi su Cerca e Piano spariva
   scorrendo. Fissa e centrata, larga quanto il guscio. */
.bottom-nav{position:fixed;left:50%;right:auto;transform:translateX(-50%);width:min(100%,500px)}

/* iPad e schermi grandi: niente finestra a forma di telefono, si usa tutta
   la pagina. Con questo spazio le sezioni ci stanno per intero, quindi lo
   sfogliamento a pagine si spegne e si torna a un unico scorrimento
   verticale; resta attivo sul telefono, dove serve davvero. */
@media(min-width:700px){
  .app-stage{padding:0}
  .app-shell{width:100%;max-width:none;min-height:100dvh;max-height:none;border-radius:0;box-shadow:none}
  .screen{padding-left:28px;padding-right:28px}
  .screen.paged.active{display:block;height:auto}
  .pager{display:block;overflow:visible;scroll-snap-type:none}
  .page{min-width:0;overflow:visible}
  .pager-dots{display:none}
  .section-title.first,.wellness-title.first{margin-top:25px}
  .settings-card.first{margin-top:22px}
  .page:first-child .first{margin-top:0}
  .bottom-nav{width:min(520px,calc(100% - 40px));bottom:16px;border-radius:26px;padding:9px 10px}
  .sheet-backdrop,.check-flow{border-radius:0}
}

/* Marchio. Prima il segno (45px) era piu' basso del blocco di testo (55px):
   galleggiava a meta' altezza accanto a una scritta piu' grande di lui, e la
   data — 15px in grassetto — pesava quanto il nome. Ora il segno e il testo
   hanno la stessa altezza e la data torna a fare da occhiello: piccola,
   leggera, sopra l'unica voce forte della testata. */
.brand{gap:14px;align-items:center}
.brand-logo{width:56px;height:56px;border-radius:18px;box-shadow:0 8px 20px rgba(13,16,22,.16)}
.brand-text{min-width:0}
.top-header .eyebrow{font-size:13px;font-weight:750;letter-spacing:.03em;line-height:1.3;color:#6b747b}
.top-header h1{font-size:36px;line-height:1;margin:5px 0 0;letter-spacing:-.01em}

/* Su schermo largo cresce tutto il resto: il marchio cresce con lui. */
@media(min-width:700px){
  .brand{gap:18px}
  .brand-logo{width:66px;height:66px;border-radius:21px}
  .top-header .eyebrow{font-size:14px}
  .top-header h1{font-size:42px}
}

/* L'avviso a schermo restava fuori dall'albero di accessibilita' finche' era
   display:none, e i lettori di schermo non lo annunciavano mai. */
.toast{opacity:0;visibility:hidden;transform:translateX(-50%) translateY(8px);transition:opacity .18s ease,transform .18s ease,visibility .18s}
.toast.is-visible{opacity:1;visibility:visible;transform:translateX(-50%)}

/* Quando si supera l'obiettivo l'arco cambia colore: il numero da solo non
   basta a far capire che si e' andati oltre. */
.gauge.over .gauge-fill{stroke:#d87963}

/* La voce che l'app non misura ancora non deve sembrare una voce raggiunta. */
.wellness-item.waiting{opacity:.7}
.wellness-item.waiting .wellness-icon{background:#ecefee;color:var(--muted)}

.search-filters button.active{border-color:var(--ink);background:var(--ink);color:var(--aqua)}

/* Chi naviga da tastiera deve vedere dove si trova: quasi tutti i pulsanti
   qui hanno il bordo a zero e il contorno predefinito spariva. */
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* Chi ha chiesto al sistema meno animazioni non deve subire lo scorrimento
   morbido delle pagine ne' le transizioni. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .pager{scroll-behavior:auto}
}

/* Open Food Facts: foto, gruppi di risultati, scheda prodotto, lettore di codici */
.food-photo img{width:100%;height:100%;object-fit:contain;border-radius:8px;background:#fff}
.result-group{margin:18px 0 2px;font-size:13px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.search-status{padding:16px 0;color:var(--muted);font-size:14px;line-height:1.4}
.source-note a,.data-source a{color:inherit}
.sheet-photo{display:block;width:88px;height:88px}
.sheet-photo img{width:100%;height:100%;object-fit:contain;border-radius:14px;background:#f4f6f5}
.food-badges{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}
.food-badges span{padding:6px 9px;border-radius:10px;background:#eef1ef;font-size:13px;font-weight:800}
.nutriscore.ns-a{background:#1e8f4e;color:#fff}.nutriscore.ns-b{background:#7ac547;color:#0d1016}.nutriscore.ns-c{background:#f5c623;color:#0d1016}.nutriscore.ns-d{background:#ee8b25;color:#0d1016}.nutriscore.ns-e{background:#e0412b;color:#fff}
.portion-picker button small{display:block;font-size:11px;color:var(--muted)}
.portion-custom{display:grid;grid-template-columns:auto 130px;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 0;font-size:14px;font-weight:800;color:#4f575d}
.portion-custom input{width:100%;height:42px;border:1px solid #d8ddda;border-radius:12px;padding:0 34px 0 11px;font-size:16px}
.nutrition-more{font-size:14px;color:var(--muted);margin:-6px 0 12px}
.data-source{font-size:13px;color:var(--muted);line-height:1.45}
.scan-frame{position:relative;margin:18px 0 12px;aspect-ratio:4/3;border-radius:22px;overflow:hidden;background:#0d1016}
.scan-frame video{width:100%;height:100%;object-fit:cover;display:block}
.scan-frame i{position:absolute;left:8%;right:8%;top:30%;bottom:30%;border:3px solid var(--aqua);border-radius:14px;box-shadow:0 0 0 999px rgba(13,16,22,.35)}
.scan-status{min-height:42px;margin:0 2px 8px;font-size:15px;line-height:1.4;text-align:center}
.scan-flow .check-primary{margin-bottom:10px}
