/* Avolyx Fitness — lemon yellow, clear white surfaces and charcoal contrast. */
:root{
 --font:'Manrope',system-ui,-apple-system,sans-serif;
 --bg:#F7F8FA;--surface:#FFFFFF;--surface-alt:#F0F2F4;
 --text:#191B20;--text-2:#555C66;--text-3:#68717D;--border:#DFE3E8;
 --accent:#FFD600;--accent-ink:#34352B;--accent-bg:#FFF8CD;--accent-fg:#191B20;--focus:#34352B;
 --gold:var(--accent-ink);--gold-bg:var(--accent-bg);--rose:#995345;--rose-bg:#F9EAE6;
 --danger:#B82C30;--success:#24754C;--warn:#8A6A00;--hero:#111214;--lime:#FFD600;
 --shadow:0 5px 24px #17203206;--nav-bg:rgba(255,255,255,.96);--nav-border:#DFE3E8;
 --h0:#F0F2F4;--h1:#FFF7BD;--h2:#FFEE85;--h3:#FFE449;--h4:#FFD600;--h5:#EBC400;
 --chart-below:#EF9590;--chart-above:#2A9159;--chart-goal:#2F6FE0;
 --award-facile:#B87333;--award-media:#8C96A3;--award-difficile:#D4A800;--award-leggendaria:#7B5CD6;
}
:root[data-theme="dark"]{
 --bg:#111214;--surface:#1C1E21;--surface-alt:#282B30;--text:#F4F5F7;--text-2:#C0C5CC;--text-3:#9BA3AE;--border:#393E45;
 --accent-ink:#FFD600;--accent-bg:#343017;--focus:#FFD600;--rose:#E9AB9C;--rose-bg:#392723;
 --danger:#FFAAAA;--success:#8EDDB1;--warn:#FFD600;--shadow:none;--nav-bg:rgba(28,30,33,.97);--nav-border:#393E45;--h0:#282B30;
 --chart-below:#C0605B;--chart-above:#57BC84;--chart-goal:#6E9EF5;
 --award-facile:#D9925A;--award-media:#B7C0CB;--award-difficile:#FFD600;--award-leggendaria:#A78BFA;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
 --bg:#111214;--surface:#1C1E21;--surface-alt:#282B30;--text:#F4F5F7;--text-2:#C0C5CC;--text-3:#9BA3AE;--border:#393E45;
 --accent-ink:#FFD600;--accent-bg:#343017;--focus:#FFD600;--rose:#E9AB9C;--rose-bg:#392723;
 --danger:#FFAAAA;--success:#8EDDB1;--warn:#FFD600;--shadow:none;--nav-bg:rgba(28,30,33,.97);--nav-border:#393E45;--h0:#282B30;
 --chart-below:#C0605B;--chart-above:#57BC84;--chart-goal:#6E9EF5;
 --award-facile:#D9925A;--award-media:#B7C0CB;--award-difficile:#FFD600;--award-leggendaria:#A78BFA;
}}
body{max-width:720px;padding:0 22px calc(115px + env(safe-area-inset-bottom,0px));font-size:15px;line-height:1.6;background:var(--bg)}
button,input,textarea,select{font-family:var(--font)}
h1,h2,h3,.brand,.ring-number,.profile-goal-badge strong{font-family:'Outfit',var(--font)}
h1,h2,h3{font-weight:500;letter-spacing:-.035em}
a{color:var(--accent-ink);text-underline-offset:3px}
button{font-weight:600}
button:disabled{cursor:wait;opacity:.65}
button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline-width:2px;outline-offset:3px}
#app-view header{padding:calc(22px + env(safe-area-inset-top,0px)) 0 24px;align-items:center}
.brand{font-size:24px;letter-spacing:-1px;gap:10px}.brand-mark.logo-mark{width:39px;height:39px;border-radius:11px}
.page-intro{margin:10px 0 25px}.page-intro .eyebrow{font-size:12px;letter-spacing:.13em;margin-bottom:9px}
.page-intro h1{font-size:38px;line-height:1.08;letter-spacing:-1.6px;margin-bottom:10px;font-weight:500}
.page-intro p{font-size:14px;line-height:1.65;max-width:560px}
.eyebrow{font-size:12px;letter-spacing:.11em;font-weight:700;text-transform:uppercase;color:var(--text-2)}
.card{border-radius:19px;padding:22px;margin-bottom:18px;box-shadow:var(--shadow)}
.card-label{font-size:12px;letter-spacing:.1em}.card h2{font-size:22px;line-height:1.2}
.section-title{margin:24px 0 13px;align-items:baseline}.section-title h2{font-size:23px}.section-title span{font-size:12px}
.ui-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.screen-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 18px}.screen-toolbar .eyebrow{margin-bottom:5px}.screen-toolbar h2{font-size:23px}.screen-toolbar>.ui-icon{color:var(--text-3)}
.quiet-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 15px;border:1px solid var(--border);border-radius:11px;background:var(--surface);color:var(--text);font-size:13px;white-space:nowrap}
.quiet-button:hover{background:var(--surface-alt);border-color:var(--accent)}
.segment-control,.diet-tabs{display:flex;gap:4px;padding:4px;background:var(--surface-alt);border:1px solid var(--border);border-radius:13px;margin:0 0 24px}
.segment-control button,.diet-tab{flex:1;background:transparent;border:0;border-radius:9px;min-height:44px;padding:10px 14px;font-size:13px;color:var(--text-2)}
.segment-control button[aria-pressed="true"],.diet-tab.active{background:var(--surface);box-shadow:0 2px 5px #1326190A;color:var(--text)}
/* The diary gives equal access to food and movement without competing banners. */
.progress-hero{min-height:185px;padding:28px 24px;border-radius:24px;margin-bottom:16px;background:radial-gradient(ellipse at 100% 0%,#FFD60019,transparent 65%),var(--hero);box-shadow:0 12px 30px #11121418}
.progress-hero:after{content:'';position:absolute;width:240px;height:240px;right:-100px;bottom:-190px;border:1px solid #FFD60030;border-radius:50%;pointer-events:none}
.progress-hero .eyebrow{font-size:12px;letter-spacing:.14em;color:#E1E3D6}.progress-hero h2{font-size:29px;max-width:310px;font-weight:400;letter-spacing:-.8px;line-height:1.08}.progress-hero p{max-width:330px;font-size:12px;color:#D7D9CF}
.progress-ring{width:105px;height:105px}.ring-number strong{font-size:39px}.ring-number small{font-size:13px}.ring-number span{font-size:12px}
.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 4px}.quick-action{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:15px;padding:17px 14px;color:var(--text);min-width:0}
.quick-action>svg:first-child{color:var(--accent-ink)}.quick-action>svg:last-child{width:16px;margin-left:auto}.quick-action strong{display:block;font-size:13px;line-height:1.35}.quick-action small{display:block;font-size:12px;font-weight:400;color:var(--text-2);margin-top:4px}.quick-action:hover{border-color:var(--accent)}
.diary-inline-menu{margin:0 0 4px}#diary-activity-panel{margin-top:12px}.diary-menu-card{padding:20px}.diary-menu-card .screen-toolbar{margin-bottom:14px}.diary-menu-card #diary-menu-close{font-size:20px;line-height:1;padding:4px 8px;border:0;background:none;color:var(--text-2);cursor:pointer}
.diary-menu-total{display:flex;justify-content:space-between;align-items:center;padding:14px 0 4px;font-size:14px;color:var(--text-2)}.diary-menu-total strong{color:var(--text);font-size:14px}
.diary-menu-card .add-meal-btn{margin-top:12px}
.habits-card{padding:0 17px;margin-bottom:15px;border-radius:17px}.habit-icon{width:36px;height:36px;border-radius:11px}.habit-copy small{font-size:12px}.check-label{font-size:14px;font-weight:600}.check-box{width:24px;height:24px}
.act-log-entry{gap:11px;padding:15px 0}.act-emoji{width:39px;height:39px;border-radius:12px;color:var(--accent-ink);background:var(--accent-bg)}.act-info .act-name{font-size:14px;font-weight:700}.act-info .act-meta{font-size:12px;line-height:1.7}.act-del{font-size:19px}.act-del.act-del-hidden{display:none}
.edit-mode-btn{font-size:12px;padding:4px 10px}.edit-mode-btn.active{color:var(--danger)}
.empty-state{padding:10px 0 18px}.empty-state strong{font-size:14px;font-weight:600}.empty-state p{font-size:13px;line-height:1.65}
.add-meal-btn,#add-act-btn{font-size:13px;min-height:47px;border-radius:12px;letter-spacing:0;margin-bottom:0}.add-meal-btn{background:transparent;border-style:solid}#add-act-btn{background:var(--accent);color:var(--accent-fg);font-size:14px}
.act-form{border-top:0;margin-top:0;padding-top:0;gap:11px}.act-form label{font-size:12px!important}.act-form input,.act-form textarea{border-radius:10px;padding:12px}.act-form .chart-caption{font-size:12px;line-height:1.7}.act-form .form-error:empty{display:none}.act-type-btn{font-size:13px}.act-type-btn .ate{display:grid;place-items:center}
/* Meals read as a menu. Editing is a separate, deliberate mode. */
.diet-targets{border:1px solid var(--border);border-radius:16px;padding:16px 0;background:var(--surface);gap:0;margin-bottom:22px}
.dt-pill,.dt-pill.tk,.dt-pill.tp,.dt-pill.tc,.dt-pill.tf{border:0;border-radius:0;background:transparent;color:var(--text-2);padding:0 4px;font-size:12px;line-height:1.4}.dt-pill+.dt-pill{border-left:1px solid var(--border)}.dt-pill strong{font-family:'Outfit',var(--font);font-size:23px;color:var(--text);letter-spacing:-.5px;margin-bottom:4px}.dt-pill.tk strong{color:var(--accent-ink)}
/* Bilancio del giorno nella Dieta: stesso riquadro degli obiettivi, letto come «quanto manca». */
.diet-balance{margin-bottom:8px}.diet-balance .dt-pill{display:flex;flex-direction:column;align-items:center;min-width:0}
.db-state{font-size:12px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--text-2);margin-bottom:3px}
.db-of{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums;margin-top:2px;white-space:nowrap}
.db-bar{display:block;width:calc(100% - 16px);max-width:88px;height:4px;border-radius:2px;background:var(--border);margin-top:8px;overflow:hidden}.db-bar i{display:block;height:100%;border-radius:2px;background:var(--accent)}
.dt-pill[data-balance="under"] .db-state,.diet-balance .dt-pill[data-balance="under"] strong{color:var(--warn)}
.dt-pill[data-balance="ok"] .db-state,.diet-balance .dt-pill[data-balance="ok"] strong{color:var(--success)}.dt-pill[data-balance="ok"] .db-bar i{background:var(--success)}
.dt-pill[data-balance="over"] .db-state,.diet-balance .dt-pill[data-balance="over"] strong{color:var(--danger)}.dt-pill[data-balance="over"] .db-bar i{background:var(--danger)}
.diet-balance-note{font-size:12px;color:var(--text-3);margin:0 0 16px;line-height:1.5}
#dp-week>.screen-toolbar h2{font-size:20px}#dp-week>.screen-toolbar{margin-bottom:18px}#dp-week .screen-toolbar .eyebrow{font-size:12px}
.meal-day-picker{gap:5px;margin:0 0 20px}.meal-day-button{min-height:56px;border-radius:11px;font-size:12px;background:transparent}.meal-day-button span{font-size:14px}.meal-day-button.selected{background:var(--text);border-color:var(--text);color:var(--bg)}
.week-day,.week-day.is-today{border-color:var(--border);border-radius:19px;margin-bottom:0!important;background:var(--surface)}
.meal-slot{border-bottom:1px solid var(--border);padding:0 22px}.meal-slot:last-child{border-bottom:0}.week-meal{padding:20px 0;min-height:0;border:0}.week-meal:hover{background:transparent}.wm-top{display:grid;grid-template-columns:minmax(0,1fr) auto 12px;gap:5px 12px;align-items:center}.wm-type{grid-column:1/-1;width:auto;font-size:12px;letter-spacing:.11em;color:var(--text-2);font-weight:700}.wm-name{font-family:'Outfit',var(--font);font-size:18px;line-height:1.2;letter-spacing:-.25px;font-weight:400;min-width:0}.wm-kcal{font-size:12px;white-space:nowrap;color:var(--text-2);font-weight:500}
.meal-not-planned .week-meal{padding:12px 0}.meal-not-planned .wm-top{display:flex}.meal-not-planned .wm-type{flex:1}.meal-not-planned .wm-name{font-size:13px}.meal-not-planned .wm-kcal{display:none}
.wm-detail{border-top:1px solid var(--border);padding-top:18px;margin-top:18px}.wm-recipe{padding-left:19px}.wm-recipe li{font-size:13px;line-height:1.8}
.meal-swap{margin:0 0 15px auto;background:var(--accent-bg);border:0;border-radius:9px;padding:8px 11px;min-height:42px;display:flex;align-items:center;gap:7px;font-size:12px}.meal-swap .ui-icon{width:15px;height:15px}#dp-week[data-editing="false"] .meal-swap{display:none}.meal-card .mn{font-family:'Outfit',var(--font);font-size:19px;font-weight:400}.meal-card .mm{font-size:12px}
.meal-dialog{border-radius:20px;padding:24px;max-width:540px}.meal-dialog h2{font-size:29px;letter-spacing:-.8px}.meal-dialog p{font-size:13px;line-height:1.8}.meal-dialog .form-error:empty{display:none}.meal-edit{gap:15px}.meal-edit label{font-size:12px;gap:6px}.meal-edit input,.meal-edit textarea{background:var(--surface-alt)}.meal-preview strong{font-family:'Outfit',var(--font);font-size:21px;font-weight:500}.edit-actions button{font-size:13px}
/* Actual activity data comes first; routines live behind a second tab. */
.training-entry{margin:0 0 26px}.training-entry #add-act-btn{margin:0;max-width:260px}.recent-card{padding-bottom:5px}.recent-card .screen-toolbar{margin-bottom:5px}.recent-card .act-log-entry:last-child{border:0}
/* Profile is the home for progress and personal data. */
.profile-identity{display:flex;align-items:center;gap:13px;padding:10px 0 27px;margin-bottom:22px;border-bottom:1px solid var(--border)}.profile-avatar{width:50px;height:50px;border-radius:50%;background:var(--hero);color:var(--lime);display:grid;place-items:center;font-family:'Outfit',var(--font);font-size:23px;flex:none}.profile-identity h2{font-size:22px;overflow-wrap:anywhere}.profile-identity p{font-size:12px;color:var(--text-2);margin:4px 0 0}.profile-goal-badge{margin-left:auto;padding-left:12px;border-left:1px solid var(--border);flex:none}.profile-goal-badge span{display:block;font-size:12px;color:var(--text-2);text-transform:uppercase;letter-spacing:.08em}.profile-goal-badge strong{font-size:32px;line-height:1.25;font-weight:400}.profile-goal-badge small{font-family:var(--font);font-size:13px;color:var(--text-2);font-weight:400}.monday-prompt{border-color:var(--border);background:var(--accent-bg);margin-bottom:18px!important}.monday-prompt .card-label{margin-bottom:10px}.monday-prompt p{font-size:13px!important}.weight-input-row{gap:8px}.weight-input-row input{background:var(--surface);font-size:16px!important;border:1px solid var(--border)}.weight-input-row button{font-size:13px;min-height:46px;padding:0 15px}.weight-summary .ws{background:transparent;padding:10px 0}.weight-summary .ws+.ws{border-left:1px solid var(--border);border-radius:0}.weight-summary .ws .wv{font-size:28px}.weight-summary .ws .wl{font-size:12px}.weight-chart-wrap{height:220px;margin:18px 0 14px}.weight-log .wl-row{font-size:13px}.weight-history .screen-toolbar{margin-bottom:12px}
.progress-heatmap{align-self:start}.progress-heatmap h2{font-size:28px!important;font-weight:400}.progress-filters{gap:6px;margin:15px 0 22px}.progress-filters button{border:1px solid var(--border);border-radius:8px;min-height:40px;padding:9px 12px;font-size:12px;background:transparent}.progress-filters button[aria-pressed="true"]{background:var(--h5);color:#fff;border-color:var(--h5)}.progress-heatmap .chart-caption{font-size:12px}.progress-detail{border-top:1px solid var(--border);padding-top:13px;font-size:12px}.progress-summary{font-size:12px}.heatmap-grid{gap:4px}.progress-days{font-size:12px}.heatmap-legend{font-size:12px}.progress-heatmap button.hcell{border-radius:3px}.hcell.today{outline-color:var(--h5)}.settings-grid .btn{width:auto;padding:12px 18px;min-height:44px;font-size:13px}.settings-grid .login-field{background:var(--surface-alt);min-height:48px;padding:12px;border-radius:10px}.settings-grid [role="status"]{font-size:13px;color:var(--text-2)}
.settings-grid>.card{align-self:start}.theme-options{display:flex;gap:10px}.theme-options button{flex:1;min-width:0;border:1px solid var(--border);border-radius:12px;background:transparent;padding:10px;font-size:12px}.theme-options button[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.theme-swatch{height:76px;display:flex;flex-direction:column;gap:5px;border-radius:6px;padding:12px 9px;background:#F7F8FA;margin-bottom:9px;overflow:hidden}.theme-dark{background:#15171A}.theme-system{background:linear-gradient(90deg,#F7F8FA 50%,#15171A 50%)}.theme-swatch i{height:9px;background:#CFD3D8;border-radius:2px;width:100%}.theme-swatch i:first-child{height:18px;background:#FFD600}.theme-swatch i:last-child{width:65%}
.field-label{font-size:12px}.btn{border-radius:11px}.btn-primary{font-weight:600}.toast{font-size:13px;border-radius:11px;z-index:110}
/* Navigation adapts to the device instead of stretching a phone screen. */
nav#bnav{max-width:520px;width:calc(100% - 28px);bottom:calc(10px + env(safe-area-inset-bottom,0px));padding:6px;border-radius:19px;box-shadow:0 10px 36px #16291C1A}
nav#bnav .nb{min-height:54px;font-size:12px;border-radius:13px;padding:8px 4px;gap:5px;letter-spacing:0;font-weight:600;transition:none}nav#bnav .nb.active{background:var(--accent-bg);color:var(--accent-ink)}nav#bnav .nb svg{width:20px;height:20px}
#login-view{max-width:420px;margin:auto;min-height:100dvh;padding-top:36px}#login-view .login-brand{margin-bottom:28px}.login-art{height:156px;border-radius:22px}.login-title{font-size:43px;letter-spacing:-1.7px;font-weight:400}.login-sub{font-size:14px;line-height:1.8}.login-footnote{font-size:12px}
@media(min-width:760px){
 body{max-width:1480px;padding:0 40px 60px 264px}body:has(#app-view[hidden]){padding:0 24px 40px}
 #app-view header{height:106px;padding:24px 0 20px;justify-content:flex-end}#app-view header>.brand{position:fixed;left:max(30px,calc((100vw - 1480px)/2 + 30px));top:34px;z-index:55}
 #app-view:before{content:'';position:fixed;top:0;bottom:0;left:max(0px,calc((100vw - 1480px)/2));width:229px;border-right:1px solid var(--border);pointer-events:none}
 nav#bnav{left:max(21px,calc((100vw - 1480px)/2 + 21px));top:145px;bottom:auto;transform:none;width:187px;max-width:none;display:flex;flex-direction:column;gap:7px;padding:0;background:transparent;border:0;box-shadow:none;backdrop-filter:none}
 nav#bnav .nb{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:13px;min-height:52px;padding:13px 17px;border-radius:11px;font-size:13px;flex:none}nav#bnav .nb.active{background:var(--hero);color:var(--lime)}nav#bnav .nb svg{width:20px;height:20px}
 nav#bnav:after{content:'UN PASSO ALLA VOLTA';display:block;font-size:12px;letter-spacing:.14em;padding:29px 17px;color:var(--text-3);border-top:1px solid var(--border);margin-top:24px}
 .page-intro{margin:0 0 30px}.page-intro h1{font-size:48px;letter-spacing:-1.9px}.page-intro p{font-size:14px}.progress-hero{padding:30px 34px;min-height:207px}.progress-hero h2{font-size:38px;max-width:460px}.progress-hero p{font-size:13px;max-width:440px}.progress-ring{width:130px;height:130px}.ring-number strong{font-size:48px}
 .quick-action{padding:18px 20px}.quick-action strong{font-size:14px}.quick-action small{font-size:12px}.quick-action>svg:first-child{width:25px;height:25px}
 .diet-tabs{max-width:460px}.diet-targets{max-width:660px}.meal-day-picker{max-width:580px}.meal-day-button{min-height:60px}.meal-day-button.selected{background:var(--hero);color:var(--lime)}
 .meal-slot{padding:0 26px}.wm-name{font-size:23px}.wm-type{font-size:12px}.wm-kcal{font-size:13px}.week-meal{padding:22px 0}.wm-top{gap:7px 20px}.wm-detail{max-width:760px}.wm-recipe li{font-size:14px}.meal-slot:has(.meal-swap):not(:has(.wm-detail.open)){position:relative}#dp-week[data-editing="true"] .meal-swap{margin-bottom:18px}
 .profile-identity{padding:5px 0 26px}.profile-avatar{width:58px;height:58px;font-size:28px}.profile-identity h2{font-size:27px}.profile-goal-badge strong{font-size:40px}.profile-goal-badge{padding-left:25px}
 .recent-card{padding:25px 28px 8px}.act-log-entry{padding:18px 0}.act-info .act-name{font-size:14px}.act-info .act-meta{font-size:12px}
 #login-view{padding-top:50px}.login-art{height:185px}.toast{bottom:24px;left:calc(50% + 95px)}
}
@media(min-width:1120px){
 .diary-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:26px}.diary-grid section{min-width:0}.quick-actions{gap:16px}
 .profile-progress-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:22px}.profile-progress-grid section{min-width:0}.profile-progress-grid .progress-filters{gap:5px}.profile-progress-grid .progress-filters button{font-size:12px;padding:8px 10px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.settings-grid .theme-swatch{height:90px}
}
@media(max-width:420px){
 .quick-action{padding:14px 12px;gap:9px}.quick-action>svg:last-child{display:none}.quick-action>svg:first-child{width:21px;height:21px}.quick-action small{font-size:11.5px;line-height:1.3}.quick-action strong{font-size:12px}.progress-hero{padding:25px 21px;gap:15px}.progress-hero h2{font-size:27px}.progress-ring{width:95px;height:95px}.progress-hero p{font-size:12px}.progress-hero .eyebrow{font-size:12px}.meal-slot{padding:0 17px}.wm-top{gap:5px 8px}.wm-name{font-size:18px}.wm-kcal{font-size:12px}.card{padding:19px}.habits-card{padding:0 16px}.meal-dialog{padding:21px}.screen-toolbar{gap:10px}#dp-week>.screen-toolbar h2{font-size:19px}
}
.profile-progress-grid{display:grid;gap:0}.profile-progress-grid>section{display:contents}.profile-progress-grid .progress-heatmap{order:0}.profile-progress-grid .steps-chart{order:1}.profile-progress-grid .monday-prompt{order:2}.profile-progress-grid .weight-history{order:3}
@media(min-width:1120px){.profile-progress-grid{gap:22px;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start}.profile-progress-grid .progress-heatmap{grid-column:1;grid-row:1 / span 2}.profile-progress-grid .steps-chart{grid-column:2;grid-row:1}.profile-progress-grid .weight-history{grid-column:2;grid-row:2;margin-bottom:18px}}
@media(max-width:759px){.training-entry #add-act-btn{max-width:none}}
@media(max-width:359px){body{padding-inline:16px}.page-intro h1{font-size:33px}.progress-hero{padding:23px 17px;gap:10px}.progress-hero h2{font-size:25px}.progress-ring{width:83px;height:83px}.ring-number strong{font-size:33px}.ring-number span{font-size:12px}.profile-identity{gap:10px}.profile-avatar{width:42px;height:42px}.profile-identity h2{font-size:20px}.profile-goal-badge strong{font-size:29px}.section-title h2{font-size:21px}.section-title span{font-size:12px}.wm-name{font-size:16px}.wm-type{font-size:12px}.wm-kcal{font-size:12px}.screen-toolbar h2{font-size:20px}.quiet-button{padding-inline:10px}#dp-week>.screen-toolbar h2{font-size:17px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Dettagli del menu e feedback del Diario. */
#diary-activity-close{font-size:24px;line-height:1}
.diary-inline-menu:not([hidden]){animation:diary-panel-in .22s ease-out}
.habit-completed .check-box{animation:habit-pop .35s ease-out}
.habits-all-completed .progress-ring{animation:habit-finish .8s ease-in-out}
@keyframes diary-panel-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@keyframes habit-pop{0%,100%{transform:scale(1)}45%{transform:scale(1.22)}}
@keyframes habit-finish{0%,100%{transform:scale(1)}35%{transform:scale(1.1) rotate(-5deg)}65%{transform:scale(1.05) rotate(5deg)}}
/* Zero attività è sempre neutro; la durata determina l'intensità. */
.progress-heatmap .hl0{background:#E3E3E3}
[data-tone="red"]{--h1:#F5C6C8;--h2:#E88589;--h3:#D64550;--h4:#B52A35;--h5:#8C1D26}
[data-tone="green"]{--h1:#C4E2C4;--h2:#7EC47E;--h3:#45A045;--h4:#2D7F2D;--h5:#1E5E1E}
[data-tone="blue"]{--h1:#C7D8F5;--h2:#8BAEE8;--h3:#4E7BD6;--h4:#2F5AB5;--h5:#1E3E8C}
[data-tone="violet"]{--h1:#DBCDF0;--h2:#B89FE0;--h3:#8F6BD0;--h4:#6F4BB0;--h5:#513787}
[data-tone="orange"]{--h1:#FBDDC0;--h2:#F5B97E;--h3:#E8933C;--h4:#C7721E;--h5:#99540F}
[data-tone="teal"]{--h1:#C2E5E2;--h2:#85CCC6;--h3:#45A9A0;--h4:#2A8880;--h5:#1B655E}
[data-tone="pink"]{--h1:#F7CCE0;--h2:#EE9CC4;--h3:#DE64A0;--h4:#BC4180;--h5:#8F2C60}
[data-tone="amber"]{--h1:#FCE9B8;--h2:#F6D477;--h3:#E8B92E;--h4:#C2960F;--h5:#8F6D06}
.pf-dot{width:9px;height:9px;border-radius:50%;background:var(--h4);flex-shrink:0}
.progress-filters button{display:inline-flex;align-items:center;gap:7px}
.progress-filters button[aria-pressed="true"] .pf-dot{background:#FFFFFF}
.progress-heatmap button.hcell{border-radius:4px;transition:transform .15s,box-shadow .15s}
.progress-heatmap button.hcell:not(:disabled):hover{transform:scale(1.18);box-shadow:0 0 0 1px var(--text-2)}
.duration-legend{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px 12px;margin-top:16px}
.duration-key{display:inline-flex;align-items:center;gap:4px}.duration-key .hls{display:inline-block;flex-shrink:0}
:root[data-theme="dark"] .progress-heatmap .hl0{background:#353535}
@media(prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .progress-heatmap .hl0{background:#353535}
}

/* Brand accents stay bright; text and control boundaries stay readable on white. */
.brand-mark.logo-mark{width:44px;height:44px;border-radius:13px;box-shadow:0 4px 12px #11121424;border:1px solid #43464B;background:#111214}
.brand-name{display:flex;flex-direction:column;gap:0;font-size:25px;line-height:.98;letter-spacing:-.8px}
.brand-name>span{font-family:var(--font);font-size:12px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;margin-top:6px;color:var(--text-2)}
.brand-name::after{content:'';height:3px;width:28px;background:var(--accent);border-radius:3px;margin-top:6px}
.btn-primary,#add-act-btn,.edit-actions .ea-save,.weight-input-row button{box-shadow:inset 0 0 0 1px #191B2038}
.btn-primary:hover,#add-act-btn:hover,.edit-actions .ea-save:hover{background:#FFE239;color:#191B20;opacity:1}
nav#bnav .nb.active{background:var(--accent);color:var(--accent-fg);box-shadow:inset 0 0 0 1px #191B2026}
.quick-action>svg:first-child{color:var(--accent-fg);background:var(--accent);box-sizing:content-box;padding:8px;border-radius:10px}
.quick-action[aria-expanded="true"]{border-color:var(--focus);box-shadow:inset 0 -3px var(--accent)}
.habit-icon{background:var(--accent-bg);color:var(--accent-ink)}
.check-box{border-color:var(--text-3)}.check-box.checked{border-color:#7A6811;background:var(--accent)}
.segment-control button[aria-pressed="true"],.diet-tab.active{box-shadow:inset 0 -3px var(--accent),0 2px 5px #1720320A}
.meal-day-button.selected{background:var(--accent);color:var(--accent-fg);border-color:#7A6811}
.login-title em{color:var(--text);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:5px;text-underline-offset:6px}
.profile-avatar{box-shadow:inset 0 0 0 1px #FFD60050}
input:focus-visible,textarea:focus-visible{outline-color:var(--focus)}
@media(max-width:359px){.quick-action{gap:7px}.quick-action>svg:first-child{padding:6px;width:18px;height:18px}}

.act-notes-toggle{background:none;border:none;color:var(--accent-ink);font-size:12px;font-weight:600;padding:6px 0;margin-top:6px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;min-height:36px}
.act-notes-full{font-size:13px;color:var(--text-2);margin-top:6px;line-height:1.7;padding:10px 14px;background:var(--surface-alt);border-radius:10px}

/* Schedule editor */

/* Gym day panels */

/* Shared interface icon family. */
.ui-icon,nav#bnav .nb .ui-icon,.habit-icon .ui-icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
nav#bnav .nb .ui-icon{width:22px;height:22px}
.habit-icon{width:42px;height:42px;border-radius:13px;background:var(--surface-alt);color:var(--text-2);border:1px solid var(--border)}
.quick-action>svg:first-child{padding:10px;border-radius:13px;box-shadow:none}
.wm-type .ui-icon{display:block;width:21px;height:21px;margin-bottom:6px;color:var(--text-2)}
.activity-form-title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700}
.act-type-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}
.act-type-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-width:0;min-height:144px;padding:18px 10px;border:1px solid var(--border);border-radius:16px;background:var(--surface);text-align:center;color:var(--text)}
.act-type-btn .ate{display:grid;place-items:center;flex-shrink:0;margin:0;width:48px;height:48px;border:0;border-radius:15px;background:var(--surface-alt);color:var(--text-2)}
.act-type-btn .ate .ui-icon{width:26px;height:26px}
.act-type-btn[data-atid="gym"] .ate{background:light-dark(#F9EDEE,#3C262B);color:light-dark(#AC4752,#F0ABB3)}
.act-type-btn[data-atid="run"] .ate{background:light-dark(#EAF3EC,#20382C);color:light-dark(#347048,#A0D5B0)}
.act-type-copy{display:flex;flex-direction:column;gap:5px;min-width:0;max-width:100%;overflow-wrap:anywhere}
.act-type-copy strong{font-size:15px;font-weight:700;line-height:1.35}.act-type-copy small{font-size:12px;font-weight:400;line-height:1.5;color:var(--text-2)}
.act-type-btn:hover{border-color:var(--text-3);background:var(--surface-alt)}.act-type-btn:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.act-type-btn:active{background:var(--accent-bg);border-color:var(--accent-ink)}
@media(min-width:1120px){.act-type-grid{max-width:720px}.act-type-grid:has(> :nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}}
.diary-grid{display:block}.diary-habits{min-width:0}
@media(min-width:1120px){.diary-habits{display:grid;grid-template-columns:1fr 1fr;gap:0 26px}.diary-habits>.section-title{grid-column:1/-1}.diary-habits>.habits-card{align-self:start}}

/* Activity register: summary, day groups and readable session metrics. */
.training-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:center;margin-bottom:24px}
.training-actions .training-entry{margin:0}
.training-entry #add-act-btn{display:flex;align-items:center;justify-content:center;gap:10px;max-width:none;width:100%;min-height:54px;padding:15px 24px;border-radius:14px;font-size:15px;font-weight:700;line-height:1.4}
.training-form-area:empty{display:none}
.training-form-area:not(:empty){margin:0 0 24px;padding:22px;border:1px solid var(--border);border-radius:17px;background:var(--surface)}
@media(min-width:1120px){.training-actions{grid-template-columns:minmax(0,360px) minmax(240px,auto);justify-content:space-between;gap:20px}.training-entry #add-act-btn{min-width:240px}}
.recent-card{padding:0;margin:0}.recent-card>.screen-toolbar{margin-bottom:24px}.edit-mode-btn{display:flex;align-items:center;gap:7px;min-height:44px}.edit-mode-btn .ui-icon{width:16px;height:16px}
.session-day{margin-bottom:24px}.session-day-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.session-day-heading h3{font-family:var(--font);font-size:14px;font-weight:700;line-height:1.5}.session-day-heading time{display:block;text-transform:capitalize}.session-day-heading h3>span{font-size:12px;font-weight:400;color:var(--text-2)}.session-day-heading>span{font-size:12px;color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.session-list{display:grid;gap:12px}.session-card.act-log-entry{display:block;padding:18px 20px;border:1px solid var(--border);border-radius:17px;background:var(--surface);box-shadow:0 3px 10px #17203203}.recent-card .session-card.act-log-entry:last-child{border:1px solid var(--border)}
.session-header{display:flex;align-items:center;gap:12px}.session-header .act-emoji{width:44px;height:44px;border-radius:13px;background:var(--surface-alt);color:var(--text-2);border:1px solid var(--border)}.session-header .act-emoji[data-activity="run"],.session-header .act-emoji[data-activity="walk"]{background:light-dark(#EAF3EC,#20382C);color:light-dark(#347048,#A0D5B0);border-color:light-dark(#D8E8DC,#31503C)}.session-header .act-emoji[data-activity="gym"]{background:light-dark(#F9EDEE,#3C262B);color:light-dark(#AC4752,#F0ABB3);border-color:light-dark(#F0DCDF,#58353D)}
.session-header .act-name{margin:0;font-family:var(--font);font-size:15px;font-weight:700;overflow-wrap:anywhere}.session-header .act-meta{align-items:center;gap:5px;font-size:12px;margin-top:4px}.act-meta .ui-icon{width:13px;height:13px}
.session-metrics{display:flex;gap:24px;margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.session-metrics>div+div{padding-left:24px;border-left:1px solid var(--border)}.session-metrics>div>span{display:block;font-size:12px;color:var(--text-2);margin-bottom:4px}.session-metrics strong{font-family:'Outfit',var(--font);font-size:28px;font-weight:500;line-height:1.2;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.session-metrics small{font-family:var(--font);font-size:13px;font-weight:500;color:var(--text-2);letter-spacing:0}
.act-notes-toggle{width:100%;gap:7px;margin-top:12px;min-height:44px;padding:8px 0;color:var(--text-2);font-size:12px}.act-notes-toggle .ui-icon{width:15px;height:15px}.act-notes-toggle .ui-icon:last-child{margin-left:auto}.act-notes-toggle[aria-expanded="true"] .ui-icon:last-child{transform:rotate(180deg)}.act-notes-full{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:0}
.session-card .act-del{display:grid;place-items:center;flex-shrink:0;color:var(--danger);background:var(--surface-alt);border-radius:10px;border:1px solid var(--border)}.session-card .act-del-hidden{display:none}.session-card .act-del .ui-icon{width:18px;height:18px}
.recent-more>summary{display:flex;align-items:center;justify-content:center;gap:12px;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:12px;font-size:13px;padding:13px 16px;min-height:46px;margin-bottom:20px}.recent-more>summary::-webkit-details-marker{display:none}.recent-more>summary .ui-icon{width:17px;height:17px}.recent-more[open]>summary .ui-icon{transform:rotate(180deg)}
.session-empty{background:var(--surface);border:1px dashed var(--border);border-radius:17px;padding:32px 24px;align-items:center}.session-empty .empty-symbol{display:grid;place-items:center;min-width:48px;height:48px;background:var(--accent-bg);border-radius:14px}.session-empty p{font-size:13px;line-height:1.8}
@media(min-width:768px){.session-list{grid-template-columns:repeat(2,minmax(0,1fr))}.session-list>.session-card:only-child{grid-column:1/-1}.session-card:only-child{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 24px}.session-card:only-child .session-metrics{margin:0;padding:0;border:0;min-width:200px}.session-card:only-child .act-notes-toggle,.session-card:only-child .act-notes-full{grid-column:1/-1}.session-day-heading h3{font-size:14px}}

/* Diario: le azioni quotidiane arrivano prima, gli approfondimenti restano disponibili senza occupare l'apertura. */
.diary-progress{min-height:126px;padding:20px 22px;margin-bottom:22px;border-radius:19px}
.diary-progress h2{max-width:250px;font-size:24px}
.diary-progress .progress-ring{width:86px;height:86px}
.diary-progress .ring-number strong{font-size:31px}
.diary-progress .ring-number span{margin-top:4px}
.diary-actions{margin-top:28px}
.diary-actions .section-title{margin-top:0}
.diary-insights{margin-top:28px;border-top:1px solid var(--border)}
.diary-insights>summary{display:flex;align-items:center;justify-content:center;min-height:104px;cursor:pointer;list-style:none;color:var(--text);-webkit-tap-highlight-color:transparent}
.diary-insights>summary::-webkit-details-marker{display:none}
.diary-insights>summary strong,.diary-insights>summary small{display:block}
.diary-insights>summary strong{font-family:'Outfit',var(--font);font-size:18px;font-weight:500;letter-spacing:-.4px}
.diary-insights>summary small{margin-top:2px;font-size:13px;color:var(--text-2)}
/* Una freccia gialla al centro: invita ad aprire l'andamento; da aperta si gira verso l'alto. */
.diary-insights-icon{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--accent-fg);box-shadow:0 8px 20px -6px #FFD60099,0 0 0 6px #FFD6001F;transition:transform .25s ease,box-shadow .25s ease;animation:insights-nudge 1.8s cubic-bezier(.45,0,.4,1) infinite}
/* Un'eco gialla parte verso il basso a ogni rimbalzo: si vede anche con la coda dell'occhio. */
.diary-insights-icon::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);opacity:0;pointer-events:none;animation:insights-echo 1.8s ease-out infinite}
.diary-insights-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.diary-insights>summary:hover .diary-insights-icon{box-shadow:0 10px 24px -6px #FFD600B3,0 0 0 9px #FFD60029}
.diary-insights>summary:active .diary-insights-icon{transform:scale(.94)}
.diary-insights[open] .diary-insights-icon{animation:none;transform:rotate(180deg);box-shadow:0 0 0 5px #FFD60014}
.diary-insights[open] .diary-insights-icon::after{animation:none;opacity:0}
@keyframes insights-nudge{0%,40%,100%{transform:translateY(0)}55%{transform:translateY(12px)}68%{transform:translateY(-2px)}80%{transform:translateY(6px)}90%{transform:translateY(0)}}
@keyframes insights-echo{0%,50%{opacity:0;transform:translateY(0) scale(1)}56%{opacity:.7;transform:translateY(12px) scale(1)}100%{opacity:0;transform:translateY(22px) scale(1.5)}}
.diary-insights-content{padding-bottom:4px}
.diary-insights-content>.monday-prompt:first-child{margin-top:0}
@media(min-width:760px){
 .diary-progress{min-height:148px;padding:24px 28px}
 .diary-progress h2{font-size:30px;max-width:420px}
 .diary-progress .progress-ring{width:104px;height:104px}
 .diary-progress .ring-number strong{font-size:38px}
}
@media(max-width:420px){
 .diary-progress{padding:19px 18px;gap:10px}
 .diary-progress h2{max-width:none;font-size:20px;letter-spacing:-.8px;white-space:nowrap}
 .diary-progress .progress-ring{width:76px;height:76px}
 .diary-progress .ring-number strong{font-size:28px}
 .diary-progress .ring-number span{font-size:12px}
}
@media(max-width:359px){
 .diary-progress h2{font-size:18px}
 .diary-progress .progress-ring{width:68px;height:68px}
 .diary-progress .ring-number strong{font-size:25px}
}
@media(prefers-reduced-motion:reduce){.diary-insights-icon{transition:none;animation:none}}
@media(max-width:359px){.session-card.act-log-entry{padding:16px}.session-day-heading h3>span{font-size:12px}}

/* Settings are a separate screen, reached only from Profile. */
.profile-settings-button{width:42px;height:42px;min-width:42px;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text-2)}.profile-settings-button:hover{color:var(--text);background:var(--accent-bg)}.profile-settings-button .ui-icon{width:21px;height:21px}
.settings-back{display:inline-flex;align-items:center;gap:7px;border:0;background:none;color:var(--text-2);padding:8px 0;min-height:44px;font-size:13px;margin-bottom:12px}.settings-back .ui-icon{width:18px;height:18px;transform:rotate(180deg)}
#content[data-page="settings"] .settings-grid{margin-top:8px;align-items:start}#content[data-page="settings"] .settings-grid>.card{min-width:0}
.settings-card{padding:18px 20px;margin-bottom:14px}
.settings-card>.screen-toolbar{margin-bottom:14px;align-items:flex-start}.settings-card>.screen-toolbar h2{font-size:19px;letter-spacing:-.4px}.settings-card>.screen-toolbar .eyebrow{font-size:12px;margin-bottom:4px}
.settings-card .edit-mode-btn{padding:9px 13px;font-size:12px;min-height:40px;color:var(--text-2)}.settings-card .edit-mode-btn[aria-pressed="true"]{background:var(--accent-bg);border-color:var(--accent-bg);color:var(--accent-ink)}
.settings-rows{font-size:14px}
.settings-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--border)}
.settings-row:last-child,.settings-rows .act-manage-row:last-child{border-bottom:none}
.settings-row span{color:var(--text-2)}.settings-row strong{font-weight:600;text-align:right;overflow-wrap:anywhere}
.settings-rows .amr-fields{font-size:12px;color:var(--text-3);text-align:right}
.settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}
.settings-fields .sf-full{grid-column:1/-1}
.settings-grid .settings-form .login-field{margin-bottom:13px}
.settings-status{font-size:13px;color:var(--text-2);margin:10px 0 0;min-height:0}
.settings-status:empty{display:none}
.settings-action-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}
.settings-action-row:last-of-type{border-bottom:none;padding-bottom:0}
.settings-action-row strong{display:block;font-size:14px;font-weight:600}
.settings-action-row p{font-size:12px;line-height:1.6;color:var(--text-2);margin:4px 0 0;max-width:34ch}
.settings-action-row .quiet-button{flex:none;font-size:12px;padding:10px 14px;min-height:40px}
.brain-recap-intro{font-size:13px;line-height:1.6;color:var(--text-2);margin:0 0 14px}
.brain-recap-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.brain-recap-dates label{display:block;min-width:0}
.settings-grid .brain-recap-dates .login-field{width:100%;margin-top:6px}
.brain-recap-text{margin:14px 0 0;padding:12px;max-height:260px;overflow:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface-alt);color:var(--text);font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
.brain-recap-text:empty{display:none}
.brain-recap-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.info-card{border-style:dashed;background:transparent}
.info-table{width:100%;border-collapse:collapse;font-size:14px}
.info-table th,.info-table td{padding:10px 0;border-bottom:1px solid var(--border);vertical-align:middle}
.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:none}
.info-table th{text-align:left;font-weight:400;color:var(--text-2)}
.info-table td{text-align:right;font-weight:600}
.info-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:-.2px}
.info-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-alt);color:var(--text-2)}
.info-pill::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}
.info-pill[data-state="ok"]{background:var(--accent-bg);color:var(--accent-ink)}
.info-pill[data-state="pending"]{background:var(--accent);color:var(--accent-fg)}
.info-card .export-btn{margin-top:16px}
#content[data-page="settings"] .btn-logout{width:100%;min-height:48px;border:1px solid var(--border);border-radius:13px;background:transparent;color:var(--danger);font-size:14px;margin:2px 0 0}
.settings-card .theme-swatch{height:58px;padding:9px 8px;margin-bottom:7px}
@media(min-width:768px){#content[data-page="settings"] .settings-grid>.info-card,#content[data-page="settings"] .settings-grid>.btn-logout{grid-column:1/-1}.settings-card .theme-swatch{height:76px}.settings-card{padding:22px 24px}}
@media(max-width:359px){.settings-fields{grid-template-columns:minmax(0,1fr)}.settings-action-row{display:block}.settings-action-row .quiet-button{width:100%;margin-top:10px}}

/* Alimenti, filtri del catalogo e composizione guidata dei piatti. */
.catalog-filters{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 18px}
.catalog-filters button{border:1px solid var(--border);border-radius:20px;padding:9px 14px;background:var(--surface);font-size:13px;color:var(--text-2);min-height:44px}
.catalog-filters button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.meal-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.meal-badges span{font-size:12px;border-radius:8px;padding:5px 9px;background:var(--surface);border:1px solid var(--border);color:var(--text-2)}
.compose-empty{font-size:13px;color:var(--text-3);line-height:1.7;margin:0 0 16px}
/* Schede degli alimenti: porzione pratica sopra, valori per 100 g sotto. */
#dp-foods .login-field{margin-bottom:14px}
.food-group{margin-bottom:10px;padding:18px}
.food-group h3{font-size:14px;margin-bottom:10px}
.food-row{padding:11px 0;border-top:1px solid var(--border)}
.food-group h3+.food-row{border-top:0;padding-top:0}
.fr-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.fr-head strong{font-size:14px;font-weight:600;overflow-wrap:anywhere}
.fr-role{font-size:12px;color:var(--text-3);white-space:nowrap}
.fr-portion{font-size:13px;color:var(--text-2);margin-top:5px;font-variant-numeric:tabular-nums}
.fr-portion strong{color:var(--text);font-weight:600}
.fr-per100{font-size:12px;color:var(--text-3);margin-top:3px;font-variant-numeric:tabular-nums}
/* Compositore: un pasto alla volta, ingredienti a schede e scelta a elenco. */
.compose-form{display:grid;gap:0}
.compose-meal{display:flex;gap:4px;padding:4px;background:var(--surface-alt);border:1px solid var(--border);border-radius:13px;margin-bottom:16px}
.compose-meal button{flex:1;border:0;border-radius:9px;background:transparent;min-height:44px;font-size:13px;color:var(--text-2);padding:8px 6px}
.compose-meal button[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:0 2px 5px #1326190A}
.compose-summary{position:sticky;top:-2px;z-index:3;background:var(--surface);padding:6px 0 10px;margin:0 0 6px}
.compose-block{border-top:1px solid var(--border);padding-top:16px;margin-top:10px;display:grid;gap:12px}
.compose-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.compose-head h3{font-family:'Outfit',var(--font);font-size:17px;font-weight:500;margin:0}
.compose-head span{font-size:12px;color:var(--text-3)}
.compose-roles{display:flex;flex-wrap:wrap;gap:6px}
.compose-roles button{border:1px solid var(--border);border-radius:11px;background:var(--surface-alt);font-size:13px;padding:9px 12px;min-height:44px;color:var(--text)}
.compose-roles button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
/* Scheda di un ingrediente: nome, apporto, poi i comandi su una riga sola. */
.ing-row{border:1px solid var(--border);border-radius:14px;padding:12px 13px;display:grid;gap:8px;background:var(--surface-alt)}
.ing-row+.ing-row{margin-top:8px}
.ing-name{margin:0;font-size:14px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
.ing-values{margin:0;font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}
.ing-values strong{color:var(--text-2);font-weight:600}
.ing-controls{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ing-stepper{display:grid;grid-template-columns:40px minmax(66px,1fr) 40px;gap:6px;align-items:center;flex:1 1 auto;max-width:210px}
.ing-stepper>button{min-height:42px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:19px;line-height:1;color:var(--text);padding:0}
.ing-qty{display:flex!important;flex-direction:row!important;align-items:center;justify-content:center;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:10px;min-height:42px;padding:0 8px;min-width:0}
.ing-qty input{width:100%;min-width:0;border:0;background:transparent;font-size:16px;text-align:right;padding:0;min-height:40px;font-variant-numeric:tabular-nums;color:var(--text)}
.ing-qty span{font-size:13px;color:var(--text-2);flex:none}
.ing-tools{display:flex;gap:6px;flex:none}
.ing-tools button{width:42px;height:42px;min-height:42px;display:grid;place-items:center;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text-2);padding:0}
.ing-tools button:hover{color:var(--text);background:var(--accent-bg);border-color:var(--accent-bg)}
.ing-tools .ui-icon{width:17px;height:17px}
/* Elenco degli alimenti: lo stesso in ogni finestra, con gli adatti al pasto in cima. */
#tw-picker{margin-top:10px;border:1px solid var(--accent-bg);background:var(--accent-bg);border-radius:14px;padding:13px}
.picker-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.picker-head strong{font-size:14px;color:var(--accent-ink)}
.picker-head button{border:0;background:none;font-size:21px;line-height:1;color:var(--accent-ink);min-height:36px;padding:0 4px}
.picker-hint{font-size:12px;color:var(--accent-ink);opacity:.8;margin:4px 0 10px;line-height:1.6}
.picker-grid{display:grid;gap:6px;max-height:262px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.picker-item{display:grid;gap:3px;text-align:left;border:1px solid var(--border);border-radius:11px;background:var(--surface);padding:11px 12px;min-height:56px}
.picker-item:hover{border-color:var(--text-3)}
.pi-name{font-size:14px;font-weight:600;color:var(--text)}
.pi-meta{font-size:12px;color:var(--text-2);font-variant-numeric:tabular-nums}
/* Totali con la fascia consigliata per quel pasto. */
.compose-totals{border:1px solid var(--border);border-radius:14px;padding:15px;background:var(--surface-alt)}
.ct-main{font-size:13px;color:var(--text-2);margin-bottom:12px}
.ct-main strong{font-family:'Outfit',var(--font);font-size:27px;font-weight:500;color:var(--text);letter-spacing:-.6px}
.ct-main span{display:block;margin-top:4px;font-variant-numeric:tabular-nums}
.ct-bar{display:grid;grid-template-columns:62px minmax(0,1fr);gap:4px 10px;align-items:center;font-size:12px;color:var(--text-2);margin-top:9px}
.ct-track{position:relative;height:8px;border-radius:5px;background:var(--border);overflow:hidden}
.ct-track i{display:block;height:100%;border-radius:5px;background:var(--text-3)}
.ct-bar.ok .ct-track i{background:var(--success)}
.ct-track b{position:absolute;top:0;bottom:0;width:2px;background:var(--text-2);opacity:.55}
/* Consigli: cosa manca, con il pulsante che lo aggiunge davvero. */
.meal-advice{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.meal-advice li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:4px 8px;font-size:13px;line-height:1.65;color:var(--text-2)}
.meal-advice li>span:first-child{font-weight:700;text-align:center}
/* Scelta del piatto per un pasto: solo le opzioni di quel pasto. */
/* Una lista sola, che scorre insieme alla finestra: un riquadro scorrevole dentro un altro,
   su telefono, sembra un menu dentro un menu e non si capisce dove si sta scorrendo. */
.pick-group-title{font-size:12px;color:var(--text-2);margin:16px 0 8px}
.compose-hint{font-size:13px;color:var(--text-2);line-height:1.7;margin:0 0 4px}
.link-button{border:0;background:none;padding:0;color:var(--accent-ink);text-decoration:underline;font-size:13px;min-height:0}
.compose-form{max-height:none}
@media(min-width:768px){.food-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.food-group h3{grid-column:1/-1}.food-group h3+.food-row,.food-group .food-row:nth-child(2),.food-group .food-row:nth-child(3){border-top:0}}
@media(max-width:359px){.diet-tab{font-size:12px;padding:10px 2px}.catalog-filters button{padding:9px 11px;font-size:12px}.compose-meal button{font-size:12px;padding:8px 2px}.ing-stepper{grid-template-columns:36px minmax(56px,1fr) 36px;gap:5px}.ing-tools button{width:38px;height:38px}}

/* Diario: abitudini accorpate, passi, giorni scorrevoli e dettaglio del giorno. */
.diary-register{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:10px 0 0;min-height:52px;border:0;border-radius:14px;background:var(--accent);color:var(--accent-fg);font-size:14px;font-weight:500;box-shadow:inset 0 0 0 1px #191B2038}
.diary-register:hover{background:#FFE239}
.diary-register .ui-icon{width:19px;height:19px}
.habit-block{padding:15px 17px;display:grid;gap:13px}
.habit-block.single{cursor:pointer}
.habit-head{display:flex;align-items:center;gap:13px}
.habit-head .habit-copy{flex:1;min-width:0;display:grid;gap:2px}
.habit-head small{font-size:12px;color:var(--text-2)}
.habit-count{font-size:13px;color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.habit-block[aria-checked="true"] .habit-icon{background:var(--accent);color:var(--accent-fg);border-color:transparent}
.meal-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.meal-chip{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:12px;background:var(--surface-alt);padding:11px 12px;min-height:48px;font-size:13px;color:var(--text-2);text-align:left}
.meal-chip .ui-icon{width:18px;height:18px;flex-shrink:0}
.meal-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meal-chip.on{background:var(--accent-bg);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.steps-row{margin:0}
/* Sei settimane in una striscia: si scorre con il dito. */
.days-card{padding:20px;overflow:visible}
.diet-days-eyebrow{margin:0 0 10px}
.days-card.has-calendar{position:relative}
.days-calendar{position:absolute;top:10px;right:12px;z-index:1;min-height:36px;padding:4px 10px;font-size:13px;gap:5px}
.days-calendar .ui-icon{width:15px;height:15px}
.days-scroller{display:flex;gap:18px;overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:2px;scrollbar-width:none}
.days-scroller::-webkit-scrollbar{display:none}
.day-week{flex:0 0 100%;scroll-snap-align:center;min-width:0;padding:1px}
.dw-label{font-size:12px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;color:var(--text-2);margin:0 0 10px}
.day-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.day-cell{display:grid;justify-items:center;gap:3px;padding:10px 0 8px;border:1px solid transparent;border-radius:12px;background:var(--h0);color:var(--text);min-height:66px}
.day-cell.future-day{opacity:.45}
.day-cell.current-day{border-color:var(--text);box-shadow:0 0 0 1px var(--text)}
.dc-week{font-size:12px;color:inherit;opacity:.75}
.dc-num{font-family:'Outfit',var(--font);font-size:17px;line-height:1;font-variant-numeric:tabular-nums}
.section-title .quiet-button{display:inline-flex;align-items:center;gap:7px;font-size:13px}
.section-title .quiet-button .ui-icon{width:17px;height:17px}
/* Dettaglio di un giorno, usato nel popup e nel calendario. */
.day-detail{display:grid;gap:14px}
.day-detail-date{font-size:13px;color:var(--text-2);margin:0;text-transform:capitalize}
.day-bars{display:grid;gap:12px}
.db-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}
.db-name{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600}
.db-name .ui-icon{width:17px;height:17px;color:var(--h4)}
.db-value{font-size:12px;color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.db-track{height:10px;border-radius:6px;background:var(--surface-alt);overflow:hidden}
.db-track i{display:block;height:100%;border-radius:6px;background:var(--h4)}
.db-time{font-size:12px;color:var(--text-3);margin:5px 0 0}
.day-empty{font-size:13px;color:var(--text-3);line-height:1.7;margin:0}
.day-habits{display:flex;align-items:center;gap:10px;border-top:1px solid var(--border);padding-top:13px;font-size:12px;color:var(--text-2)}
.day-habits strong{margin-left:auto;font-variant-numeric:tabular-nums}
.day-dots{display:flex;gap:4px}
.day-dots i{width:9px;height:9px;border-radius:3px;background:var(--surface-alt);border:1px solid var(--border)}
.day-dots i.on{background:var(--accent);border-color:var(--accent)}
.day-steps{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2);margin:0;font-variant-numeric:tabular-nums}
.day-steps .ui-icon{width:17px;height:17px}
.day-steps em{font-style:normal;font-size:12px;color:var(--accent-ink);background:var(--accent-bg);border-radius:7px;padding:4px 8px}
.loading-inline{font-size:13px;color:var(--text-3)}
/* Calendario del mese. */
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.cal-head strong{font-family:'Outfit',var(--font);font-size:19px;font-weight:500;text-transform:capitalize}
.cal-head button{width:42px;height:42px;border:1px solid var(--border);border-radius:11px;background:var(--surface);color:var(--text);font-size:19px;line-height:1}
.cal-head button:disabled{opacity:.35}
.cal-weekdays,.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.cal-weekdays{font-size:12px;color:var(--text-3);text-align:center;margin-bottom:6px}
.cal-cell{position:relative;display:grid;place-items:center;aspect-ratio:1;border:1px solid transparent;border-radius:10px;background:var(--h0);font-size:14px;color:var(--text);min-height:0;padding:0;font-variant-numeric:tabular-nums}
.cal-cell.empty{background:transparent}
.cal-cell:disabled{opacity:.3}
.cal-cell.today{box-shadow:0 0 0 1px var(--text)}
.cal-cell.selected{border-color:var(--text)}
.cal-detail{border-top:1px solid var(--border);margin-top:16px;padding-top:14px}
@media(min-width:768px){.meal-chips{grid-template-columns:repeat(4,minmax(0,1fr))}.day-week{flex-basis:calc(50% - 9px)}}
@media(max-width:359px){.meal-chip{font-size:12px;padding:10px}.day-cell{min-height:56px}.dc-num{font-size:15px}}
/* Come app dal telefono: niente zoom con le dita né doppio tocco. */
html{touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* Grafico dei passi nel Profilo. */
.steps-chart{align-self:start;margin-bottom:18px}
.sc-plot{position:relative;margin:18px 0 10px;padding-bottom:2px}
.sc-bars{display:flex;align-items:flex-end;gap:2px;height:120px}
.sc-bar{flex:1;min-width:0;border-radius:4px 4px 0 0;background:var(--chart-below)}
.sc-bar.over{background:var(--chart-above)}
.sc-bar.empty{background:transparent;border:1px dashed var(--border);border-bottom:0}
/* Solo il tapis roulant, senza i passi del telefono: barra sbiadita con bordo tratteggiato. */
.sc-bar.partial{opacity:.38;outline:1px dashed currentColor;outline-offset:-1px;color:var(--text-3)}
.sc-legend .lg-partial{background:var(--chart-below);opacity:.38;outline:1px dashed var(--text-3);outline-offset:-1px}
/* La riga dell'obiettivo sta sopra le barre: si vede subito chi la supera. */
.sc-goal{position:absolute;left:0;right:0;z-index:1;border-top:2px solid var(--chart-goal);pointer-events:none}
.sc-goal span{position:absolute;right:0;top:-19px;font-size:12px;font-weight:600;color:var(--text-2);background:var(--surface);padding:0 5px;border-radius:4px;font-variant-numeric:tabular-nums}
.sc-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 0;padding:0;list-style:none;font-size:12px;color:var(--text-2)}
.sc-legend li{display:flex;align-items:center;gap:6px}.sc-legend i{width:10px;height:10px;border-radius:3px}
.sc-legend .lg-goal{height:0;width:14px;border-radius:0;border-top:2px solid var(--chart-goal)}
/* Schede richiudibili: si aprono solo quando servono. */
/* La spesa in due giri. */
/* Grafico del ritmo, sotto il calendario della corsa. */
.pace-chart{border-top:1px solid var(--border);margin-top:20px;padding-top:16px}
.pace-chart .screen-toolbar{margin-bottom:12px}
.pace-chart h3{font-family:'Outfit',var(--font);font-size:20px;font-weight:400;margin:0}
.pace-chart .weight-summary{margin-bottom:6px}
.pace-chart .weight-chart-wrap{height:150px}
.pace-empty{padding-top:16px}
.pace-locked{font-size:12px;color:var(--text-3);border-top:1px dashed var(--border);margin-top:16px;padding-top:14px;line-height:1.6}
.act-splits{display:grid;gap:11px;border:1px dashed var(--border);border-radius:13px;padding:13px}
.act-splits .chart-caption{margin:0}
/* Obiettivo raggiunto: si accende anche l'icona del gruppo. */
.habit-block.complete .habit-icon{background:var(--accent);color:var(--accent-fg);border-color:transparent}
.habit-block.complete .habit-count{color:var(--accent-ink);font-weight:600}
/* Finestre: la pagina sotto resta ferma e il contorno del fuoco non invade il testo. */
body.dialog-open{position:fixed;left:0;right:0;width:100%;overflow:hidden}
.meal-dialog{overscroll-behavior:contain}
.meal-dialog:focus,.meal-dialog:focus-visible{outline:none}
.meal-dialog .edit-actions{margin-top:18px}
#content:focus,#content:focus-visible,#app-view:focus{outline:none}
/* Finestre: titolo fermo in alto, corpo che scorre, pulsanti ancorati in fondo. */
.meal-dialog{display:flex;flex-direction:column;padding:0;overflow:hidden;max-height:min(88dvh,88vh)}
.meal-dialog>h2{flex:none;margin:0;padding:22px 22px 12px}
.meal-dialog>.md-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 22px 20px}
.meal-dialog>.md-body>*:first-child{margin-top:0}
.meal-dialog>.edit-actions{flex:none;margin:0;padding:14px 22px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--surface)}
@media(min-width:600px){.meal-dialog>h2{padding:24px 26px 12px}.meal-dialog>.md-body{padding:0 26px 22px}.meal-dialog>.edit-actions{padding:16px 26px 20px}}
/* Spesa calcolata dai pasti: giorni da scegliere e quantità. */
/* Preparazioni di base dentro la ricetta di un piatto. */
.base-prep{border:1px solid var(--border);border-radius:13px;background:var(--surface-alt);margin-top:12px}
.base-prep>summary{display:flex;align-items:center;gap:10px;list-style:none;padding:13px 14px;min-height:50px;font-size:13px;font-weight:600;color:var(--accent-ink);cursor:pointer}
.base-prep>summary::-webkit-details-marker{display:none}
.base-prep>summary .ui-icon{width:16px;height:16px;margin-left:auto;transition:transform .15s}
.base-prep[open]>summary .ui-icon{transform:rotate(180deg)}
.base-prep .bp-body{padding:0 14px 14px}
.bp-yield{font-size:12px;color:var(--text-3);margin:0 0 8px}
.bp-ing{font-size:13px;color:var(--text-2);line-height:1.7;margin:0 0 10px}
.bp-bimby{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin:14px 0 6px}
.base-prep .wm-recipe{margin:0}
.base-prep .chart-caption{margin:10px 0 0}
/* Il calendario non deve spostare la pagina quando cambia vista. */
.progress-heatmap,.profile-progress-grid{overflow-anchor:none}
/* Fuori piano: registrarli senza drammi, ma con il conto davanti. */

/* Aggiunte al pasto: la frutta dopo cena conta, quindi si vede e si somma. */
.meal-extra,.meal-extra-add{display:flex;width:100%;align-items:center;gap:9px;text-align:left;border:0;background:transparent;font-size:13px;color:var(--text-2);padding:0 0 14px;min-height:40px}
.meal-extra{flex-wrap:wrap;color:var(--text-2)}
/* Le aggiunte fanno parte del piatto: una riga discreta sotto il nome, le kcal sono già nel totale. */
.meal-extra .mx-items{display:inline-flex;align-items:center;gap:6px;flex:1;min-width:0;color:var(--text-2);overflow-wrap:anywhere}
.meal-slot>.meal-extra{margin-top:-12px}
.meal-extra .ui-icon,.meal-extra-add .ui-icon{width:14px;height:14px}
.meal-extra-add{color:var(--accent-ink)}
.meal-extra-add:hover{text-decoration:underline}
.diary-menu-card .meal-extra,.diary-menu-card .meal-extra-add{padding:8px 0 10px}
.dm-row+.meal-extra{padding:0 0 8px;margin-top:-4px;font-size:12px}
.treat-picker{margin-top:16px;border:1px solid var(--border);border-radius:14px;padding:13px;background:var(--surface-alt)}
.treat-picker .picker-hint{color:var(--text-2);opacity:1;margin-top:0}
.treat-picker .picker-grid{max-height:none}
.pi-count{margin-left:8px;font-size:12px;color:var(--accent-ink);font-weight:700}
.picker-item.chosen{border-color:var(--accent);background:var(--accent-bg)}
.picker-item.chosen .pi-meta{color:var(--accent-ink)}
.treat-note{display:grid;gap:6px;font-size:12px;color:var(--text-2);margin-top:14px}
.day-treats{display:grid;gap:10px}
.day-treat{border:1px dashed var(--border);border-radius:12px;padding:12px;background:var(--surface-alt)}
.dt-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;font-weight:600}
.dt-head span{display:inline-flex;align-items:center;gap:8px}
.dt-head .ui-icon{width:16px;height:16px;color:var(--text-2)}
.dt-items{font-size:12px;color:var(--text-2);margin:8px 0 0;line-height:1.6}
.dt-note{font-size:12px;color:var(--text-3);margin:6px 0 0;font-style:italic}
/* Diario alimentare: giorni per data, pasti registrati e fuori piano al posto dei pasti (uguali agli altri: solo lo sgarro si distingue). */
.day-cell.selected-day{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.day-cell.logged-day .dc-num{text-decoration:underline;text-decoration-color:var(--text-3);text-underline-offset:3px}
.ms-treat{font-size:12px;color:var(--text-2);margin:6px 0 0}
/* Sgarro: scatta da solo oltre 500 kcal sopra l'obiettivo e segna il pasto che l'ha fatto scattare. */
.dm-cheat{padding:11px 13px;font-size:12px;font-weight:600;color:var(--danger);border-top:1px solid var(--border)}
.diary-menu-cheat{font-size:12px;font-weight:600;color:var(--danger);margin:4px 0 10px}
.day-meals{display:grid;gap:0;border:1px solid var(--border);border-radius:13px;overflow:hidden}
.dm-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 13px;font-size:13px;border-bottom:1px solid var(--border)}
.dm-row:last-of-type{border-bottom:0}
.dm-slot{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-3);white-space:nowrap}
.dm-slot .ui-icon{width:15px;height:15px}
.dm-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dm-kcal{font-size:12px;color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.dm-total{display:flex;justify-content:space-between;gap:10px;padding:11px 13px;background:var(--surface-alt);font-size:12px;color:var(--text-2)}
.day-treat{display:grid;gap:6px;width:100%;text-align:left;border:1px dashed var(--border);border-radius:12px;padding:12px;background:var(--surface-alt);color:var(--text)}
.day-treat:hover{border-style:solid;border-color:var(--text-3)}
.dt-edit{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-3)}
.dt-edit .ui-icon{width:14px;height:14px}
/* Lo sgarro sostituisce un pasto: la scelta sta in cima, non in fondo. */
.treat-slot-label{font-size:12px;color:var(--text-2);margin:0 0 8px}
.treat-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:18px}
.treat-slots button{border:1px solid var(--border);border-radius:11px;background:var(--surface-alt);min-height:46px;font-size:13px;color:var(--text-2);padding:8px 4px}
.treat-slots button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600}
.cal-cell.future-cell{opacity:.55;border-style:dashed;border-color:var(--border)}
.cal-cell.future-cell{opacity:.6;border-style:dashed;border-color:var(--border)}
/* Un pasto saltato resta visibile, ma spento. */
/* Sbiadito il pasto vuoto, non il suo «Modifica»: è da lì che lo registri. */
.meal-skipped>:not(.meal-slot-actions){opacity:.55}
.dm-row.is-skipped .dm-name{color:var(--text-3);font-style:italic}
/* Lo sgarro dentro la giornata: si tocca per correggerlo. */
.treat-row{display:block;width:100%;text-align:left;background:transparent;border:0;padding:16px 0;color:inherit}
.treat-row .wm-top{display:grid;grid-template-columns:minmax(0,1fr) auto 12px;gap:5px 12px;align-items:center}
.treat-row .wm-type{grid-column:1/-1}
.treat-row .ms-treat{display:inline-flex;align-items:center;gap:6px;margin-top:8px}
.treat-row .ms-treat .ui-icon{width:13px;height:13px}
.steps-ranges{margin:14px 0 4px}.steps-ranges button{min-height:40px;padding:8px 10px;font-size:12px}
.sc-bars{cursor:default}.sc-bar.active{box-shadow:0 0 0 2px var(--text)}
.sc-axis{display:flex;gap:2px;margin-top:4px}.sc-axis span{flex:1;min-width:0;text-align:center;font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums;overflow:hidden}
.sc-readout{margin:10px 0 0;font-size:13px;color:var(--text);font-variant-numeric:tabular-nums}
.run-last{display:grid;gap:3px;margin:4px 0 14px;padding:12px 14px;border-radius:13px;background:var(--surface-alt);border:1px solid var(--border)}
.run-last strong{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.run-last small{font-size:12px;color:var(--text-2)}
.day-steps-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.day-steps.is-empty{color:var(--text-3)}
.day-steps-edit{min-height:40px;padding:8px 12px;font-size:12px}.day-steps-edit .ui-icon{width:15px;height:15px}
.day-steps-form{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--border);border-radius:13px;background:var(--surface-alt)}
.day-steps-form .chart-caption{margin:0}.day-steps-form .form-error:empty{display:none}.day-steps-form .ds-cancel{justify-self:start;min-height:40px}
/* Passi da «Registra attività»: scelta del giorno (ultimi sette o calendario) prima del numero. */
.steps-log{display:grid;gap:10px}.steps-log .field-label{margin:0}
.steps-day-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px 0;margin:0 -2px}.steps-day-chips::-webkit-scrollbar{display:none}
.steps-day-chips button{flex:0 0 auto;border:1px solid var(--border);border-radius:999px;background:var(--surface-alt);color:var(--text-2);font:inherit;font-size:13px;font-weight:600;padding:8px 14px;min-height:40px;cursor:pointer;white-space:nowrap}
.steps-day-chips button[aria-checked="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.steps-day-other{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--text-2)}
.steps-day-other input{min-height:40px;padding:6px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-size:16px;color-scheme:light dark}
.steps-log-note{display:flex;gap:8px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:12px;background:var(--accent-bg);color:var(--accent-ink);font-size:13px;line-height:1.45}.steps-log-note svg{flex:0 0 auto;width:16px;height:16px;margin-top:2px}

/* Premi: la vetrina nel profilo e la bacheca. */
.awards-card{padding:0!important;overflow:hidden;margin-bottom:18px}.awards-card .loading-inline{padding:18px 20px;margin:0}
.awards-panel{display:grid;gap:14px;padding:18px 20px;color:var(--text)}
.awards-open{min-height:44px;padding:0 2px 0 8px;border:0;background:transparent;font:inherit;cursor:pointer}
button.shelf-slot{padding:4px 0;border:0;border-radius:12px;background:transparent;color:inherit;font:inherit;cursor:pointer}
button.shelf-slot:focus-visible,.awards-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.shelf-slot.add .award-emblem{display:grid;place-items:center;color:var(--accent-ink)}
.shelf-slot.add .award-emblem .ui-icon{width:26px;height:26px}
.shelf-slot.add small{color:var(--accent-ink)}
.award-feature{min-height:46px;margin-top:14px;padding:10px 22px;border:1px solid var(--accent);border-radius:12px;background:var(--accent);color:var(--accent-fg);font:inherit;font-weight:600;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.award-feature[aria-pressed="true"]{background:var(--accent-bg);color:var(--accent-ink)}
.award-feature .ui-icon{width:16px;height:16px}
.award-note{margin:8px 0 0;font-size:13px;color:var(--danger)}
.award-in-shelf{font-style:normal;font-size:12px;font-weight:600;color:var(--accent-ink);background:var(--accent-bg);border-radius:7px;padding:2px 7px}
.award-pick-hint{margin:0 0 12px;font-size:14px;color:var(--text-2)}
.award-record{margin:4px 0 0;font-size:13px;color:var(--text-2)}
.awards-head{display:flex;align-items:flex-end;gap:10px}.awards-head>span:first-child{flex:1;display:grid;gap:2px}
.awards-head strong{font-size:26px;font-weight:500;line-height:1}.awards-head strong small{font-size:14px;color:var(--text-2);font-weight:400}
.awards-more{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:500;color:var(--accent-ink)}.awards-more .ui-icon{width:15px;height:15px;transform:rotate(-90deg)}
.awards-new{font-style:normal;font-size:12px;font-weight:600;color:var(--accent-fg);background:var(--accent);border-radius:7px;padding:3px 8px;white-space:nowrap}
.awards-shelf{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.shelf-slot{display:grid;justify-items:center;gap:6px;text-align:center}.shelf-slot small{font-size:12px;line-height:1.25;color:var(--text-2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.shelf-slot.empty small{color:var(--text-3)}
.award-emblem{--ring:var(--border);position:relative;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--surface-alt);box-shadow:inset 0 0 0 3px var(--ring);color:var(--ring)}
.award-emblem svg{width:44%;height:44%;fill:none;stroke:currentColor;stroke-width:3.5;stroke-linecap:round}
.award-emblem img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.award-emblem.won.lv-facile{--ring:var(--award-facile)}.award-emblem.won.lv-media{--ring:var(--award-media)}.award-emblem.won.lv-difficile{--ring:var(--award-difficile)}.award-emblem.won.lv-leggendaria{--ring:var(--award-leggendaria)}
.award-emblem.locked{box-shadow:inset 0 0 0 2px var(--border);color:var(--text-3);opacity:.55}
.shelf-slot.empty .award-emblem{box-shadow:inset 0 0 0 2px var(--border);background:transparent;border:0;outline:2px dashed var(--border);outline-offset:-2px;box-shadow:none}
.award-emblem.large{width:112px;height:112px}.award-emblem.large.won{box-shadow:inset 0 0 0 5px var(--ring)}
.awards-dialog .awards-summary{display:grid;gap:8px;margin:4px 0 14px}.awards-summary strong{font-size:24px;font-weight:500}.awards-summary small{font-size:13px;color:var(--text-2);font-weight:400}
.awards-bar,.award-progress{display:block;height:6px;border-radius:6px;background:var(--surface-alt);overflow:hidden}.awards-bar i,.award-progress i{display:block;height:100%;border-radius:6px;background:var(--accent)}
.awards-filter{margin:0 0 16px}.awards-filter button{min-height:40px;padding:8px 10px;font-size:12px}
.awards-group{margin-bottom:18px}.awards-group h3{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);margin:0 0 10px}
.awards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.award-tile{position:relative;display:grid;justify-items:center;align-content:start;gap:6px;min-width:0;overflow:hidden;padding:12px 6px;border:1px solid var(--border);border-radius:13px;background:var(--surface);color:var(--text);text-align:center;cursor:pointer}
.award-tile strong{font-size:12px;font-weight:600;line-height:1.25}.award-tile small{font-size:12px;line-height:1.3;color:var(--text-2);font-variant-numeric:tabular-nums}
.award-tile .awards-new{position:absolute;top:6px;right:6px;padding:2px 6px;font-size:12px}.award-tile .award-progress{width:80%;height:4px}
.award-tile:not(.won) strong{color:var(--text-2)}
.award-back{margin-bottom:12px}
.award-detail{display:grid;justify-items:center;gap:8px;text-align:center;padding:4px 0 8px}.award-detail h3{font-size:22px;font-weight:500;margin:4px 0 0}.award-detail p{margin:0;font-size:14px;color:var(--text-2);max-width:32ch}
.award-detail .award-status{font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.award-detail .award-progress{width:70%}.award-detail .btn{margin-top:10px;width:auto;padding-inline:22px}.award-note{font-size:13px!important}
.award-level{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:7px;border:1px solid currentColor}
.award-level.lv-facile{color:var(--award-facile)}.award-level.lv-media{color:var(--text-2)}.award-level.lv-difficile{color:var(--accent-ink)}.award-level.lv-leggendaria{color:var(--award-leggendaria)}
@media(min-width:560px){.awards-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.award-emblem{width:64px;height:64px}}

/* The trophies keep their full silhouette; milestone plates distinguish all 51 awards. */
.awards-panel{padding:22px 18px;gap:20px}
.awards-head{flex-wrap:wrap;align-items:center}
.awards-shelf{gap:10px;align-items:start}
.shelf-slot{gap:10px;min-width:0}
.shelf-slot small{font-size:12px;line-height:1.4;-webkit-line-clamp:3}
.award-emblem{width:100%;max-width:88px;height:auto;aspect-ratio:1;padding:0 0 16px;border-radius:0;background:none;box-shadow:none;isolation:isolate}
.award-emblem::before{content:'';position:absolute;inset:8% 4% 5%;border-radius:50%;background:radial-gradient(ellipse,#D4A80020,transparent 70%);z-index:-1}
.award-emblem img{display:block;width:100%;height:100%;border-radius:0;object-fit:contain;filter:drop-shadow(0 4px 3px #49330A1A)}.shelf-slot .award-emblem{padding-bottom:0}
.award-emblem.locked{opacity:1;box-shadow:none;color:var(--text-3)}
.award-emblem.locked img{filter:grayscale(1);opacity:.55}
.award-emblem.locked::before{background:none}
.award-emblem.won.lv-leggendaria::before{background:radial-gradient(ellipse,#FFD60040,transparent 70%)}
.shelf-slot.empty .award-emblem{height:auto;aspect-ratio:1;max-width:72px;border-radius:16px;outline:1px dashed var(--border);outline-offset:-8px}
.awards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.award-tile{padding:22px 10px 16px;border-radius:16px;gap:10px;background:var(--surface-alt)}
.award-tile.won{background:linear-gradient(145deg,light-dark(#FFFAEB,#292519),var(--surface) 65%);border-color:light-dark(#EBDDAD,#5B4C25)}
.award-tile .award-emblem{width:min(118px,100%);max-width:100%;padding-bottom:22px}
.award-tile strong{font-size:14px;line-height:1.4}
.award-tile small{font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.award-tile .awards-new{font-size:12px;top:7px;right:7px}
.awards-group{margin-bottom:26px}
.awards-group h3{font-size:13px;margin-bottom:14px;letter-spacing:.04em}
.award-emblem.large,.award-emblem.large.won{width:208px;max-width:100%;height:208px;padding-bottom:28px;box-shadow:none}
.award-detail{gap:14px;padding:8px 0 16px}
.award-detail h3{font-size:26px;line-height:1.2}
.award-detail p{font-size:14px}
.award-level{font-size:12px}
@media(min-width:480px){.awards-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.award-emblem{padding-bottom:20px}}
@media(min-width:760px){.shelf-slot .award-emblem{max-width:110px}.shelf-slot small{font-size:13px}}

/* Bacheca: una gerarchia leggibile e medaglie davvero diverse per ogni obiettivo. */
.award-art{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain}
.award-emblem:has(.award-art){padding:0;overflow:visible;border-radius:0;background:transparent}.award-emblem:has(.award-art)::before{display:none}.award-emblem:has(.award-art).locked .award-art{filter:grayscale(1);opacity:.48}
.awards-dialog .awards-summary{padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface-alt);margin:0 0 16px}.awards-filter{position:sticky;top:0;z-index:2;padding:7px 0 11px;background:var(--surface);margin-bottom:13px}
.awards-group{margin-bottom:22px}.awards-group h3{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--border);font-size:12px;letter-spacing:.1em}.awards-group h3 small{font-size:12px;font-weight:600;letter-spacing:0;color:var(--text-3)}
.awards-grid{grid-template-columns:1fr;gap:8px}.award-tile{display:grid;grid-template-columns:66px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:13px;align-items:center;justify-items:stretch;min-height:90px;padding:11px 13px;border-radius:15px;text-align:left;background:var(--surface-alt)}.award-tile.won{background:linear-gradient(105deg,light-dark(#FFFAEB,#292519),var(--surface) 72%)}.award-tile .award-emblem{grid-row:1 / span 3;grid-column:1;width:66px;height:66px;max-width:none;margin:0;padding:0}.award-tile strong{grid-column:2;font-size:14px;line-height:1.3;text-align:left}.award-tile small{grid-column:2;font-size:12px;line-height:1.35;text-align:left}.award-tile .award-progress{grid-column:2;width:100%;margin-top:3px}.award-tile .awards-new{top:8px;right:8px}
@media(min-width:620px){.awards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Agenda — pianificazione quotidiana nello stesso linguaggio del Diario. */

/* Agenda v2: più vicina a un raccoglitore personale che a un modulo da compilare. */

/* La pianificazione ha un proprio accento lavanda: non è una scheda fitness travestita. */
#content[data-page="agenda"]{--agenda-ink:#9F91FF;--agenda-soft:#26223D;--agenda-paper:#1C1C25}#content[data-page="agenda"] .page-intro h1{letter-spacing:-2px}

/* I file individuali mantengono le proporzioni anche nel dettaglio. */
.award-emblem.large:has(.award-art){padding:0;overflow:visible;border-radius:0}

/* Agenda: il pallino segnala una scadenza, senza stampare il conteggio nel riquadro. */

/* Agenda: ordinamento e gesto di eliminazione come nelle notifiche. */

/* Menu proprietario: nessun menu nativo del browser nella vista Agenda. */
/* Diario: oggi o ieri, per recuperare quello che hai dimenticato di registrare. */
.diary-day-switch{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:-8px 0 18px;border:1px solid var(--border);border-radius:13px;background:var(--surface-alt)}
.diary-day-switch button{border:0;border-radius:10px;background:transparent;color:var(--text-2);font:inherit;font-size:14px;font-weight:600;padding:9px 20px;min-height:40px;cursor:pointer}
.diary-day-switch button[aria-checked="true"]{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001a}
.diary-day-note{margin:-6px 0 18px;padding:12px 14px;border-radius:12px;background:var(--accent-bg);color:var(--accent-ink);font-size:14px;line-height:1.45}
/* Attività: da dove arrivano i km del riepilogo (attività registrate + stima dai passi). */
/* Ricerca negli elenchi di piatti e alimenti */
.list-search{min-height:46px;margin:0 0 12px;padding:11px 14px;background:var(--surface)}
/* Primo accesso: tre passi facoltativi */
.setup-form section{display:grid;gap:10px}
.setup-dialog .setup-form section>p{margin:0}
.setup-form section[hidden]{display:none}
.setup-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.setup-dialog .setup-progress{margin:0 0 -5px;font-size:12px!important;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink)}
.setup-direction{margin:0}
.setup-form .field-label{margin:4px 0 -4px}
/* Giorni prima dell'inizio del diario: visibili per l'allineamento, ma spenti. */
.cal-cell.before-start{opacity:.28;pointer-events:none}
/* Profilo: composizione corporea dalle visite di bioimpedenza */
.body-comp{margin-top:18px}
.body-comp .screen-toolbar{margin-bottom:10px}.body-comp .screen-toolbar .quiet-button .ui-icon{width:16px;height:16px}
.bc-date{margin:0 0 14px;font-size:13px;color:var(--text-3)}
.bc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media(min-width:700px){.bc-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.bc-tile{display:grid;gap:3px;align-content:start;padding:13px 14px;border-radius:13px;background:var(--surface-alt)}
.bc-tile strong{font-family:'Outfit',var(--font);font-size:22px;font-weight:500;font-variant-numeric:tabular-nums}.bc-tile strong small{font-size:12px;color:var(--text-3);font-weight:500}
.bc-tile span{font-size:12px;color:var(--text-2)}
.bc-delta{font-size:12px;font-weight:600;color:var(--text-3);font-variant-numeric:tabular-nums}.bc-delta.good{color:var(--success)}.bc-delta.bad{color:var(--danger)}
.bc-notes{margin:14px 0 0;padding:11px 13px;border-radius:12px;background:var(--accent-bg);color:var(--accent-ink);font-size:13px;line-height:1.5;white-space:pre-line}
.bc-history{margin-top:16px;border-top:1px solid var(--border)}
.bc-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:46px;padding:10px 0;border:0;border-bottom:1px solid var(--border);background:none;color:var(--text-2);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.bc-row:last-child{border-bottom:0}.bc-row strong{color:var(--text);font-weight:500;text-align:right;overflow-wrap:anywhere}.bc-row .ui-icon{width:16px;height:16px;color:var(--text-3)}
.body-scan-form fieldset{display:grid;gap:8px;min-width:0;margin:0;padding:0;border:0}
.body-scan-form legend{padding:0 0 6px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink)}
.body-scan-form>p{margin:0}
/* Piatti creati da te: un'etichetta sobria, distinta da «modificato». */
/* Cambia piatto: ricerca e «Crea un piatto» sempre in cima, i pulsanti dicono per quanto vale la scelta. */
/* I tuoi alimenti: lo stesso modulo nella scheda Alimenti e dentro l'elenco. */
.own-food-form{display:grid;gap:12px}.own-food-form label{display:grid;gap:6px;font-size:12px}.own-food-form input{background:var(--surface-alt)}
.own-food-form .pick-group-title{margin:2px 0 -4px}.own-food-roles{margin:0}.own-food-form .form-error:empty{display:none}
.fp-own{display:grid;gap:12px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.fp-own .pick-group-title{margin:0}
.fp-own-actions{display:flex;gap:8px}.fp-own-actions button{flex:1;min-height:44px;border-radius:12px;font-size:13px;font-weight:600}
.fp-create{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:12px}.fp-create .ui-icon{width:15px;height:15px}
#food-create{display:flex;align-items:center;justify-content:center;gap:6px;margin:0 0 14px}
.macro-row label{display:flex;flex-direction:column;justify-content:flex-end}
.fp-own-actions .ea-save{background:var(--accent);color:var(--accent-fg);border:0}.fp-own-actions .ea-cancel{background:var(--surface-alt);color:var(--text-2);border:1px solid var(--border)}
.extra-for{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px}.extra-for strong{color:var(--text)}
/* Preferiti: la stella gialla su piatti e alimenti. Spenta è solo un contorno, accesa è piena. */
.fav-star{display:inline-grid;place-items:center;width:40px;height:40px;margin:-8px 0;padding:0;border:none;background:none;border-radius:10px;cursor:pointer;color:var(--text-3);flex:none}
.fav-star:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.fav-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.fav-star[aria-pressed="true"]{color:var(--award-difficile)}
.fav-star[aria-pressed="true"] .fav-icon,.fav-mark .fav-icon{fill:var(--accent);stroke:var(--award-difficile)}
.fav-mark{display:inline-grid;place-items:center;vertical-align:-3px;margin-right:5px}
.fav-mark .fav-icon{width:15px;height:15px}
.meal-card .fav-star{position:absolute;top:8px;right:52px;margin:0;width:44px;height:44px}
.meal-card .mn{padding-right:88px}
.fr-title{display:flex;align-items:center;gap:4px;min-width:0}
.fr-title .fav-star{margin-left:-10px}
.food-group-fav h3{color:var(--accent-ink)}
.weight-chart-note{margin-top:6px}
/* Colori dei pasti e sticker degli alimenti: due sistemi distinti, tessere quadrate per i pasti e tondi per gli alimenti. */
:root{
 --meal-breakfast:#B85F05;--meal-breakfast-bg:#FFEBD2;--meal-lunch:#1F7A4A;--meal-lunch-bg:#DDF2E5;
 --meal-snacks:#6B47BC;--meal-snacks-bg:#ECE5FB;--meal-dinner:#2B5BB3;--meal-dinner-bg:#E1EAFB;
 --fk-protein:#B2472F;--fk-protein-bg:#FBE6DF;--fk-legume:#8A5A2B;--fk-legume-bg:#F3E7D8;--fk-carb:#9A6A00;--fk-carb-bg:#FBEFCF;
 --fk-veg:#2E7D46;--fk-veg-bg:#E0F2E6;--fk-fruit:#C24C0A;--fk-fruit-bg:#FDE6D6;--fk-fat:#66710C;--fk-fat-bg:#EEF2D2;
 --fk-aroma:#2B756C;--fk-aroma-bg:#DDF0EE;--fk-treat:#B03568;--fk-treat-bg:#FBE2EC;
}
:root[data-theme="dark"]{
 --meal-breakfast:#F5A04A;--meal-breakfast-bg:#3A2A17;--meal-lunch:#5CC98C;--meal-lunch-bg:#183325;
 --meal-snacks:#B79CF5;--meal-snacks-bg:#2A2340;--meal-dinner:#86ABF4;--meal-dinner-bg:#1A2740;
 --fk-protein:#F08F75;--fk-protein-bg:#3A221C;--fk-legume:#D9A774;--fk-legume-bg:#33281C;--fk-carb:#E8BE55;--fk-carb-bg:#352C14;
 --fk-veg:#6FCF8E;--fk-veg-bg:#17301F;--fk-fruit:#F59A62;--fk-fruit-bg:#3A2618;--fk-fat:#C3D05A;--fk-fat-bg:#2C3015;
 --fk-aroma:#6CC7BC;--fk-aroma-bg:#163230;--fk-treat:#F08DB6;--fk-treat-bg:#3A1D2A;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
 --meal-breakfast:#F5A04A;--meal-breakfast-bg:#3A2A17;--meal-lunch:#5CC98C;--meal-lunch-bg:#183325;
 --meal-snacks:#B79CF5;--meal-snacks-bg:#2A2340;--meal-dinner:#86ABF4;--meal-dinner-bg:#1A2740;
 --fk-protein:#F08F75;--fk-protein-bg:#3A221C;--fk-legume:#D9A774;--fk-legume-bg:#33281C;--fk-carb:#E8BE55;--fk-carb-bg:#352C14;
 --fk-veg:#6FCF8E;--fk-veg-bg:#17301F;--fk-fruit:#F59A62;--fk-fruit-bg:#3A2618;--fk-fat:#C3D05A;--fk-fat-bg:#2C3015;
 --fk-aroma:#6CC7BC;--fk-aroma-bg:#163230;--fk-treat:#F08DB6;--fk-treat-bg:#3A1D2A;
}}
[data-meal="breakfast"]{--mc:var(--meal-breakfast);--mc-bg:var(--meal-breakfast-bg)}
[data-meal="lunch"]{--mc:var(--meal-lunch);--mc-bg:var(--meal-lunch-bg)}
[data-meal="snacks"]{--mc:var(--meal-snacks);--mc-bg:var(--meal-snacks-bg)}
[data-meal="dinner"]{--mc:var(--meal-dinner);--mc-bg:var(--meal-dinner-bg)}
/* Tessera del pasto: sostituisce l'icona grigia accanto a Colazione, Pranzo, Spuntino e Cena. */
.meal-ico{display:inline-grid;place-items:center;flex:none;width:34px;height:34px;border-radius:10px;background:var(--mc-bg);color:var(--mc);vertical-align:middle}
.meal-ico .ui-icon{display:block;width:19px!important;height:19px!important;margin:0!important;color:inherit!important}
.wm-type .meal-ico{display:grid;margin-bottom:7px}
.wm-type:has(.meal-ico){color:var(--text)}
.wm-type:has([data-meal="breakfast"]){color:var(--meal-breakfast)}.wm-type:has([data-meal="lunch"]){color:var(--meal-lunch)}
.wm-type:has([data-meal="snacks"]){color:var(--meal-snacks)}.wm-type:has([data-meal="dinner"]){color:var(--meal-dinner)}
.dm-slot .meal-ico{width:22px;height:22px;border-radius:7px}.dm-slot .meal-ico .ui-icon{width:13px!important;height:13px!important}
.meal-card[data-meal]{border-left:4px solid var(--mc)}
/* Finestre del pasto: striscia del colore del pasto, titolo con la tessera, schede fisse in cima. */
.meal-dialog[data-meal]{border-top:5px solid var(--mc)}
.meal-dialog .md-meal{display:flex;align-items:center;gap:12px}
.meal-dialog .md-meal .meal-ico{width:40px;height:40px;border-radius:12px}
.meal-dialog .md-meal .meal-ico .ui-icon{width:22px!important;height:22px!important}
.meal-dialog>h2 .md-meal>span:last-child{font-size:24px;line-height:1.2}
.meal-tabs{flex:none;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;margin:0 22px 14px;padding:4px;border-radius:14px;background:var(--surface-alt);border:1px solid var(--border)}
.meal-tabs button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:6px 4px;border:none;border-radius:10px;background:none;color:var(--text-2);font-size:14px;font-weight:600;cursor:pointer}
.meal-tabs button .ui-icon{width:17px;height:17px;flex:none}
.meal-tabs button[aria-current="page"]{background:var(--surface);color:var(--mc,var(--text));box-shadow:0 1px 3px #0000001a;outline:1.5px solid var(--mc,var(--accent))}
.meal-tabs button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
/* Sticker degli alimenti. */
.food-sticker{display:inline-grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;color:var(--fk);background:var(--fk-bg)}
.food-sticker svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.food-sticker.sm{width:26px;height:26px;margin-right:8px;vertical-align:middle}.food-sticker.sm svg{width:15px;height:15px}
.food-sticker.xs{width:20px;height:20px;margin-right:6px;vertical-align:-5px}.food-sticker.xs svg{width:12px;height:12px;stroke-width:2}
.food-sticker[data-kind="protein"]{--fk:var(--fk-protein);--fk-bg:var(--fk-protein-bg)}
.food-sticker[data-kind="legume"]{--fk:var(--fk-legume);--fk-bg:var(--fk-legume-bg)}
.food-sticker[data-kind="carb"]{--fk:var(--fk-carb);--fk-bg:var(--fk-carb-bg)}
.food-sticker[data-kind="veg"]{--fk:var(--fk-veg);--fk-bg:var(--fk-veg-bg)}
.food-sticker[data-kind="fruit"]{--fk:var(--fk-fruit);--fk-bg:var(--fk-fruit-bg)}
.food-sticker[data-kind="fat"]{--fk:var(--fk-fat);--fk-bg:var(--fk-fat-bg)}
.food-sticker[data-kind="aroma"]{--fk:var(--fk-aroma);--fk-bg:var(--fk-aroma-bg)}
.food-sticker[data-kind="treat"]{--fk:var(--fk-treat);--fk-bg:var(--fk-treat-bg)}
.picker-item.has-sticker{grid-template-columns:auto minmax(0,1fr);column-gap:11px;align-items:center}
.picker-item.has-sticker>.food-sticker{grid-row:1/span 3;align-self:center}
.picker-item.has-sticker>:not(.food-sticker){grid-column:2}
.ing-name{display:flex;align-items:center;flex-wrap:wrap;gap:0 2px}
.fr-title .food-sticker.sm{margin-right:6px}
.catalog-filters button{display:inline-flex;align-items:center}
.catalog-filters button .fav-mark{margin-right:5px}
.catalog-filters button[aria-pressed="true"] .food-sticker{background:var(--surface)}
.meal-tabs{grid-auto-columns:minmax(0,1fr)}
.meal-tabs button{min-width:0}
.meal-tabs button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:380px){.meal-tabs{margin:0 16px 12px}.meal-tabs button{font-size:13px;gap:4px}.meal-tabs button .ui-icon{display:none}.meal-dialog>h2 .md-meal>span:last-child{font-size:21px}}
.compose-form{grid-template-columns:minmax(0,1fr)}
/* Categorie della raccolta: tessera del pasto a sinistra, nome e kcal a destra. */
/* Scorrendo una finestra lunga: titolo più piccolo e riepilogo ridotto alle calorie. */
.meal-dialog.md-scrolled>h2{padding-top:12px;padding-bottom:8px}
.meal-dialog.md-scrolled .md-meal .meal-ico{width:30px;height:30px;border-radius:9px}
.meal-dialog.md-scrolled .md-meal .meal-ico .ui-icon{width:17px!important;height:17px!important}
.meal-dialog.md-scrolled>h2 .md-meal>span:last-child{font-size:18px}
.meal-dialog.md-scrolled .meal-tabs{margin-bottom:8px}
.meal-dialog.md-scrolled .meal-tabs button{min-height:38px}
/* Righe degli ingredienti più compatte: nome e valori stretti, comandi sotto. */
.ing-row{gap:4px;padding:10px 12px}
.meal-dialog .ing-row p{line-height:1.4}
.ing-row .ing-values{margin:0}
.ing-row .ing-controls{margin-top:4px}
/* Avvisi nello stile dell'app: superficie del tema, bordo e una barretta gialla, mai un blocco bianco sul tema scuro. */
.toast{background:var(--surface);color:var(--text);border:1px solid var(--border);border-left:4px solid var(--accent);box-shadow:0 8px 28px #0000002e;font-weight:500;padding:12px 16px 12px 14px}
/* Tapis roulant nella palestra: facoltativo, i passi stimati si sommano a quelli del telefono. */
.treadmill-box{border:1px dashed var(--border);border-radius:13px;padding:0 13px}
.treadmill-box summary{min-height:48px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:500}
.treadmill-box summary small{font-weight:400;color:var(--text-3)}
.treadmill-box[open]{display:grid;gap:11px;padding-bottom:13px}
.treadmill-box .chart-caption{margin:0}
.treadmill-estimate{margin:0;font-size:13px;color:var(--accent-ink);font-variant-numeric:tabular-nums}
.treadmill-estimate:empty{display:none}
.day-steps>span{display:flex;flex-direction:column}
.day-steps>span small{font-size:12px;color:var(--text-3)}
.session-treadmill{margin:12px 0 0;font-size:13px;color:var(--text-2);font-variant-numeric:tabular-nums}
/* Le quattro barre del piatto: ognuna col suo colore, l'obiettivo del pasto e quanto manca. */
:root{--mk-k:#D9A400;--mk-p:#2F6FD6;--mk-c:#D9731A;--mk-f:#B44F6A}
:root[data-theme="dark"]{--mk-k:#FFD600;--mk-p:#86ABF4;--mk-c:#F5A04A;--mk-f:#EE98AE}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--mk-k:#FFD600;--mk-p:#86ABF4;--mk-c:#F5A04A;--mk-f:#EE98AE}}
.ct-bars{display:grid;gap:10px}
.compose-totals .ct-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:5px 8px;align-items:baseline;margin:0;font-size:12px;color:var(--text-2)}
.ct-bar[data-macro="k"]{--mk:var(--mk-k)}.ct-bar[data-macro="p"]{--mk:var(--mk-p)}.ct-bar[data-macro="c"]{--mk:var(--mk-c)}.ct-bar[data-macro="f"]{--mk:var(--mk-f)}
.ct-label{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--text)}
.ct-label::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--mk)}
.ct-short{display:none}
.ct-of{font-variant-numeric:tabular-nums;color:var(--text-3);white-space:nowrap}.ct-of b{color:var(--text);font-weight:600}
.ct-state{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-2)}
.ct-bar[data-status="under"] .ct-state{color:var(--warn)}
.ct-bar[data-status="ok"] .ct-state{color:var(--success)}
.ct-bar[data-status="over"] .ct-state{color:var(--danger)}
.compose-totals .ct-track{grid-column:1/-1;position:relative;height:8px;border-radius:5px;background:var(--border);overflow:hidden}
.compose-totals .ct-track i{display:block;height:100%;border-radius:5px;background:var(--mk);transition:width .25s ease}
/* La tacca è l'obiettivo: la barra è lunga un quarto in più, così si vede quando lo superi. */
.compose-totals .ct-track b{position:absolute;top:0;bottom:0;left:80%;width:2px;background:var(--text);opacity:.5}
@media(prefers-reduced-motion:reduce){.compose-totals .ct-track i{transition:none}}
.md-mini .ct-bars{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.md-mini .ct-bar{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;font-size:12px}
.md-mini .ct-long,.md-mini .ct-state{display:none}
.md-mini .ct-short{display:inline}
.md-mini .ct-label{font-weight:500;color:var(--text-2);gap:4px}
.md-mini .ct-label::before{width:6px;height:6px}
.md-mini .ct-of{overflow:hidden;text-overflow:ellipsis}
.md-mini .ct-track{height:5px}
.md-mini .ct-bar[data-status="ok"] .ct-of b{color:var(--success)}
.md-mini .ct-bar[data-status="over"] .ct-of b{color:var(--danger)}
/* Piatto su misura: il nome corto, gli alimenti sotto in piccolo. */
.xs-ings{display:block;margin-top:4px;font-family:var(--font);font-size:13px;line-height:1.45;letter-spacing:0;color:var(--text-2);font-weight:400}
/* Come popover l'avviso perde i valori del browser (inset 0, margini automatici): resta in basso al centro. */
.toast[popover]{top:auto;right:auto;margin:0;height:auto;overflow:visible}
.toast[popover]::backdrop{display:none}
/* Scendendo nella finestra del pasto: schede e riepilogo si ritirano, risalendo tornano. */
.meal-dialog .meal-tabs{max-height:90px;transition:max-height .22s ease,margin .22s ease,padding .22s ease,opacity .18s ease,border-width .22s ease,visibility 0s}
.meal-dialog.md-head-hidden .meal-tabs,.meal-dialog.md-tabs-hidden .meal-tabs{max-height:0;margin-bottom:0;padding-block:0;border-width:0;opacity:0;overflow:hidden;visibility:hidden;pointer-events:none;transition:max-height .22s ease,margin .22s ease,padding .22s ease,opacity .18s ease,border-width .22s ease,visibility 0s .22s}
/* Il riepilogo grande scorre con il contenuto e non cambia mai altezza: niente salti scorrendo. */
.meal-dialog .compose-summary{position:static;padding:6px 0 4px}
/* La versione ridotta: alta zero, appiccicata in cima, il riquadro le sta sopra senza occupare spazio. */
.md-mini{position:sticky;top:0;height:0;z-index:4;margin:0!important}
.md-mini-box{position:absolute;top:0;left:0;right:0;padding:4px 0 8px;background:var(--surface);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .2s ease,transform .24s ease,visibility 0s .24s;pointer-events:none}
.md-mini-box::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--border)}
.md-mini .compose-totals{padding:8px 12px}
.md-mini .ct-main{margin:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.md-mini .ct-main strong{font-size:21px}.md-mini .ct-main span{display:inline;margin:0}
.meal-dialog.md-mini-on .md-mini-box{opacity:1;visibility:visible;transform:none;transition:opacity .2s ease,transform .24s ease,visibility 0s}
.meal-dialog.md-mini-on.md-head-hidden .md-mini-box{opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .2s ease,transform .24s ease,visibility 0s .24s}
/* Quello che si porta in vista (la ricerca, un campo) resta sotto la versione ridotta. */
.meal-dialog>.md-body:has(.md-mini){scroll-padding-top:84px}
/* Titolo e schede si rimpiccioliscono con un'animazione, non a scatto. */
.meal-dialog>h2{transition:padding .24s ease}
.meal-dialog .md-meal .meal-ico{transition:width .24s ease,height .24s ease,border-radius .24s ease}
.meal-dialog>h2 .md-meal>span:last-child{transition:font-size .24s ease}
.meal-dialog .meal-tabs button{transition:min-height .24s ease}
@media(prefers-reduced-motion:reduce){.meal-dialog .meal-tabs,.meal-dialog.md-head-hidden .meal-tabs,.meal-dialog.md-tabs-hidden .meal-tabs,.md-mini-box,.meal-dialog.md-mini-on .md-mini-box,.meal-dialog>h2,.meal-dialog .md-meal .meal-ico,.meal-dialog>h2 .md-meal>span:last-child,.meal-dialog .meal-tabs button{transition:none}}
.meal-dialog>.md-body>.md-mini+*{margin-top:0}
/* Sticker di dolci e bevande, nei filtri e (per le bevande senza zucchero) negli elenchi. */
:root{--fk-sweet:#A0522D;--fk-sweet-bg:#F7E6DC;--fk-drink:#2F6FD6;--fk-drink-bg:#E3ECFB}
:root[data-theme="dark"]{--fk-sweet:#E8A47E;--fk-sweet-bg:#3A2619;--fk-drink:#86ABF4;--fk-drink-bg:#1A2740}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--fk-sweet:#E8A47E;--fk-sweet-bg:#3A2619;--fk-drink:#86ABF4;--fk-drink-bg:#1A2740}}
.food-sticker[data-kind="sweet"]{--fk:var(--fk-sweet);--fk-bg:var(--fk-sweet-bg)}
.food-sticker[data-kind="drink"]{--fk:var(--fk-drink);--fk-bg:var(--fk-drink-bg)}
/* Passi e peso nel pannello «Registra attività»; il peso si attiva solo lunedì, mercoledì e venerdì. */
.act-log-title{margin:4px 0 10px;font-size:12px;font-weight:600;letter-spacing:.085em;text-transform:uppercase;color:var(--text-2)}
.act-log-grid .act-type-btn{min-height:116px}
.act-log-grid .act-type-btn .ate{background:var(--accent-bg);color:var(--accent-ink)}
.act-log-grid .act-type-btn:disabled{opacity:.55;cursor:default;background:var(--surface)}
.act-log-grid .act-type-btn:disabled:hover{border-color:var(--border)}
.act-log-grid .act-type-btn:disabled .ate{background:var(--surface-alt);color:var(--text-3)}
/* Il promemoria della pesata in cima al Diario, finché il peso di oggi non è registrato. */
.weigh-banner{display:flex;align-items:center;gap:12px;margin:0 0 18px;padding:14px 16px;border-radius:16px;background:var(--accent);color:var(--accent-fg);box-shadow:inset 0 0 0 1px #191B2038}
.weigh-banner-icon{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:12px;background:#FFFFFF8C}
.weigh-banner-icon .ui-icon{width:22px;height:22px}
.weigh-banner-copy{flex:1;min-width:0}.weigh-banner-copy strong{display:block;font-size:15px;font-weight:600;line-height:1.3}.weigh-banner-copy small{display:block;font-size:12px;margin-top:2px;opacity:.8}
.weigh-banner-go{flex-shrink:0;min-height:44px;padding:10px 14px;border:0;border-radius:12px;background:var(--accent-fg);color:var(--accent);font-size:13px;font-weight:600;cursor:pointer}
@media(max-width:400px){.weigh-banner{flex-wrap:wrap}.weigh-banner-go{width:100%}}
/* Cronometro (Attività → Cronometro): quadrante analogico con l'anello giallo dei secondi e il tempo scritto sotto. */
.stopwatch{display:grid;justify-items:center;text-align:center}
.stopwatch .screen-toolbar{justify-self:stretch;text-align:left}
.sw-dial-wrap{width:min(100%,320px);margin:4px auto 6px}
.sw-dial{display:block;width:100%;height:auto;overflow:visible}
.sw-face{fill:var(--surface);stroke:var(--border);stroke-width:2}
.sw-track{fill:none;stroke:var(--surface-alt);stroke-width:9}
.sw-progress{fill:none;stroke:var(--accent);stroke-width:9;stroke-linecap:round}
.sw-tick{stroke:var(--text-3);stroke-width:1.5;stroke-linecap:round;opacity:.7}
.sw-tick-major{stroke:var(--text);stroke-width:3;stroke-linecap:round}
.sw-numbers text{fill:var(--text);font-family:'Outfit',var(--font);font-size:19px;font-weight:600;text-anchor:middle;dominant-baseline:central}
.sw-sub-face{fill:var(--surface-alt);stroke:var(--border);stroke-width:1.5}
.sw-sub-label{fill:var(--text-3);font-size:8.5px;font-weight:700;letter-spacing:.12em;text-anchor:middle;dominant-baseline:central}
.sw-minute-hand{stroke:var(--text);stroke-width:3;stroke-linecap:round}
.sw-sub-cap{fill:var(--text)}
.sw-second-hand line{stroke:var(--accent-ink);stroke-width:3.5;stroke-linecap:round}
.sw-second-hand circle{fill:var(--accent-ink)}
.sw-cap{fill:var(--accent);stroke:var(--accent-ink);stroke-width:2.5}
.sw-cap-dot{fill:var(--accent-ink)}
.sw-readout{margin:2px 0 0;font-family:'Outfit',var(--font);font-size:clamp(40px,12vw,54px);font-weight:600;letter-spacing:-.02em;line-height:1.1;color:var(--text);font-variant-numeric:tabular-nums}
.sw-status{min-height:22px;margin:2px 0 14px;font-size:13px;font-weight:600;color:var(--text-3)}
.stopwatch.is-running .sw-status{color:var(--accent-ink)}
.sw-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:min(100%,360px)}
.sw-controls button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;border-radius:14px;font-size:16px;cursor:pointer}
.sw-icon{display:inline-flex}.sw-icon .ui-icon{width:20px;height:20px}
.sw-primary{background:var(--accent);color:var(--accent-fg);border:0;box-shadow:inset 0 0 0 1px #191B2038}
.sw-primary .ui-icon path{fill:currentColor;stroke-linejoin:round}
.stopwatch.is-running .sw-primary{background:var(--surface-alt);color:var(--text);box-shadow:inset 0 0 0 1px var(--border)}
.sw-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}
.sw-secondary:disabled{cursor:default;opacity:.45}
.sw-laps{list-style:none;margin:16px 0 0;padding:0;width:min(100%,360px);max-height:260px;overflow-y:auto;border-top:1px solid var(--border)}
.sw-laps li{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:baseline;padding:10px 2px;border-bottom:1px solid var(--border);font-size:14px;text-align:left;font-variant-numeric:tabular-nums}
.sw-laps li span{color:var(--text-2);font-weight:600}.sw-laps li strong{font-size:16px;color:var(--text)}.sw-laps li small{min-width:64px;text-align:right;color:var(--text-3);font-size:12px}
.sw-laps li.is-best span{color:var(--success)}
/* Sotto i 16 px Safari su iPhone ingrandirebbe la pagina a ogni campo toccato. */
@media (pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{font-size:16px!important}}
/* Indicatore della sincronizzazione: senza rete, o quando un invio va per le lunghe. */
.sync-status{margin-left:auto;display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-2);font-size:12px;font-weight:600;white-space:nowrap}
.sync-status::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}
.sync-status[data-state="offline"]::before{background:var(--text-3)}
.sync-status[hidden]{display:none}
.sync-status+.profile-settings-button{margin-left:0}
/* Diario libero: il pasto è l'elenco di quello che hai mangiato, con «+ Aggiungi» sempre a portata. */
.free-slot{padding:16px 20px;border-bottom:1px solid var(--border)}
.free-day>.free-slot:last-child,.free-day>.meal-slot:last-child{border-bottom:0}
.fs-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.fs-total{font-size:14px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}
.free-slot.is-empty .fs-total{font-weight:500;color:var(--text-3)}
.fs-items{display:grid;margin:0 0 10px}
.fs-item{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:6px 0;border:0;border-radius:0;background:transparent;color:var(--text);text-align:left;font:inherit}
.fs-item+.fs-item{border-top:1px solid var(--border)}
.fs-name{flex:1;min-width:0;display:grid;gap:1px;font-size:15px;font-weight:500;line-height:1.3}
.fs-name small{font-size:12px;font-weight:400;color:var(--text-2)}
.fs-kcal{font-size:13px;color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.fs-kcal::after{content:' kcal'}
.fs-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.fs-actions button{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:8px 14px;border-radius:12px;font:inherit;font-size:14px;font-weight:600}
.fs-actions .ui-icon{width:16px;height:16px}
.fs-add{border:0;background:var(--accent);color:var(--accent-fg)}
.fs-copy,.fs-more{border:1px solid var(--border);background:var(--surface);color:var(--text)}
.fs-more{margin-left:auto}
.free-menu-card .free-day{margin:4px -20px 0}
/* Finestra degli alimenti: scorciatoie in cima e combinazioni. */
.extra-quick{margin:0 0 14px}
.quick-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.quick-list{display:grid;gap:8px}
.quick-combo{display:flex;gap:6px;align-items:stretch}
.quick-chip{flex:1;min-width:0;display:flex;align-items:center;gap:10px;min-height:52px;padding:9px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-alt);color:var(--text);font:inherit;text-align:left}
.quick-chip span{flex:1;min-width:0;display:grid;gap:1px}
.quick-chip strong{font-size:14px}
.quick-chip small{font-size:12px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quick-chip em{font-style:normal;font-size:13px;color:var(--text-2);white-space:nowrap}
.quick-del{width:48px;flex:none;display:grid;place-items:center;border:1px solid var(--border);border-radius:12px;background:transparent;color:var(--danger)}
#extra-combo{margin:2px 0 12px}
.combo-open{display:inline-flex;align-items:center;gap:6px;min-height:40px}
.combo-form{display:grid;gap:6px}
/* Impostazioni: come registri i pasti. */
/* Nelle finestre le categorie stanno su una riga che scorre di lato: gli alimenti restano a portata. */
.treat-picker .food-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-4px;padding:2px 4px 6px;-webkit-overflow-scrolling:touch}
.treat-picker .food-chips::-webkit-scrollbar{display:none}
.treat-picker .food-chips button{flex:none}
.fp-usual-box:empty{display:none}
.fp-usual-box{margin:0 0 12px}
/* Un solo scorrimento, quello della finestra: niente riquadri che scorrono dentro altri riquadri. */
.fp-scroll .picker-grid{max-height:none;overflow:visible}
#extra-picker{margin:0 0 14px}
.fp-creating .fp-usual-box,.fp-creating .food-chips,.fp-creating .picker-hint{display:none}
.own-food-form [data-of-kind]{display:grid;gap:12px}
.ing-qty.ing-portion{flex-direction:column!important;gap:0;padding:3px 4px}
.ing-portion input{text-align:center;min-height:24px}
.ing-portion span{font-size:11px;line-height:14px}
.extra-creating #extra-summary,.extra-creating #extra-rows,.extra-creating #extra-combo,.extra-creating #extra-quick,.extra-creating #extra-intro,.extra-creating .extra-for,.extra-creating .treat-slots{display:none}
#extra-quick .quick-list{max-height:none;overflow:visible}
/* Diario libero: icona e nome del pasto sulla stessa riga. */
.free-slot .wm-type{display:flex;align-items:center;gap:10px}
.free-slot .wm-type .meal-ico{margin-bottom:0;width:30px;height:30px}
/* Intestazione compatta sul telefono: logo piccolo e nome sulla stessa riga, titolo della pagina più basso, niente sottotitolo. */
@media(max-width:759px){
  #app-view header{padding:calc(10px + env(safe-area-inset-top,0px)) 0 8px;gap:10px}
  #app-view header .brand-mark.logo-mark{width:30px;height:30px;border-radius:9px}
  #app-view header .brand-name{font-size:19px;letter-spacing:-.4px}
  #app-view header .brand-name>span,#app-view header .brand-name::after{display:none}
  .profile-settings-button{width:40px;height:40px;min-width:40px}
  .page-intro{margin:6px 0 18px}
  .page-intro .eyebrow{margin-bottom:5px}
  .page-intro h1{font-size:30px;line-height:1.1;letter-spacing:-1px;margin-bottom:0}
  .page-intro p{display:none}
}
/* Dieta: gli obiettivi del giorno sotto il bilancio, con «Modifica». */
/* Profilo: le ultime tre pesate, le altre a richiesta. */
.wl-more summary{display:flex;align-items:center;min-height:44px;color:var(--accent-ink);font-weight:600;cursor:pointer;list-style:none}
.wl-more summary::-webkit-details-marker{display:none}
/* Attività: una riga per sessione. */
.session-card.session-row.act-log-entry{padding:12px 14px;border-radius:14px}
.session-row .session-header .act-emoji{width:38px;height:38px;border-radius:11px}
.session-row .act-info{flex:1;min-width:0}
.session-row .session-metrics{display:grid;justify-items:end;gap:1px;margin:0 0 0 auto;padding:0;border:0}
.session-row .session-metrics strong{font-size:21px}
.session-row .session-metrics>span{display:block;margin:0;font-size:12px;color:var(--text-2)}
.session-row .act-notes-toggle{margin-top:8px}
/* Diario: i promemoria dell'agenda in una riga. */
/* Diario: la pesata del giorno è una riga sottile, non un riquadro. */
.weigh-banner{flex-wrap:nowrap!important;gap:10px;margin:0 0 14px;padding:7px 7px 7px 10px;border-radius:14px;background:var(--accent-bg);color:var(--text);box-shadow:inset 0 0 0 1px var(--accent)}
.weigh-banner-icon{width:30px;height:30px;border-radius:9px;background:var(--accent);color:var(--accent-fg)}
.weigh-banner-icon .ui-icon{width:17px;height:17px}
.weigh-banner-copy strong{font-size:14px}
.weigh-banner-copy small{display:none}
.weigh-banner-go{width:auto!important;min-height:40px;padding:8px 12px;background:var(--accent);color:var(--accent-fg)}
.session-row .session-treadmill{margin:8px 0 0;font-size:12px;color:var(--text-2)}
/* Alimenti: senza cercare, le categorie sono righe chiuse con il conteggio; si aprono con un tocco. */
.food-group.food-fold{display:block;padding:0}
.food-fold>summary{display:flex;align-items:center;gap:10px;min-height:56px;padding:12px 18px;cursor:pointer;list-style:none}
.food-fold>summary::-webkit-details-marker{display:none}
.food-fold>summary h3{flex:1;margin:0}
.food-fold .ff-count{font-size:13px;color:var(--text-2);font-variant-numeric:tabular-nums}
.food-fold>summary .ui-icon{width:18px;height:18px;color:var(--text-3);transition:transform .2s}
.food-fold[open]>summary .ui-icon{transform:rotate(180deg)}
.food-fold-rows{padding:0 18px 12px}
.food-fold-rows>.food-row:first-child{border-top:0;padding-top:0}
@media(min-width:768px){.food-fold-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.food-fold-rows>.food-row:nth-child(2){border-top:0;padding-top:0}}
/* Diario libero: gli ingredienti del piatto sempre in vista, con i grammi. */
/* Piatto pronto: la riga del piatto e sotto i suoi alimenti, uguali a quelli segnati uno per uno. */
.fs-ing-mark{--fk:var(--text-3);--fk-bg:var(--surface-alt)}
.fs-dish-detail{grid-column:1/-1;padding:2px 0 4px}
.fs-qb{margin:4px 0 0;font-size:12px;color:var(--text-3)}

/* EFFETTI: coriandoli, entrata delle pagine, anello che si riempie, rimbalzi e tocchi più vivi.
   Con «Riduci movimento» la regola generale in alto spegne tutte le animazioni. */
.fx-confetti{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:300}
@keyframes fx-page{from{opacity:0;translate:0 10px}}
#content.fx-page{animation:fx-page .34s cubic-bezier(.2,.8,.2,1)}
@keyframes fx-pop{0%{scale:1}35%{scale:1.12}70%{scale:.97}100%{scale:1}}
.fx-pop{animation:fx-pop .42s cubic-bezier(.3,1.4,.5,1)}
@keyframes fx-ring-pop{0%{scale:1;filter:none}30%{scale:1.14;filter:drop-shadow(0 0 14px #FFD60099)}100%{scale:1;filter:none}}
.fx-ring-pop{animation:fx-ring-pop .8s cubic-bezier(.3,1.4,.5,1)}
@keyframes ring-fill{from{stroke-dasharray:var(--ring-from,0) 100}}
.diary-progress .ring-value{animation:ring-fill .9s cubic-bezier(.2,.8,.2,1) .1s both}
@keyframes fx-grow{from{width:0}}
.db-bar i,.award-progress i{animation:fx-grow .8s cubic-bezier(.2,.8,.2,1) both}
/* Il riquadro del Diario: un riflesso che passa piano, come su una carta. */
.diary-progress::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,#ffffff14 48%,transparent 60%);translate:-100% 0;animation:fx-sheen 6s ease-in-out 1.2s infinite;pointer-events:none}
@keyframes fx-sheen{0%{translate:-100% 0}22%,100%{translate:100% 0}}
/* Giorni di fila nel Diario. */
.hero-streak{display:inline-flex;align-items:center;gap:6px;margin:12px 0 0!important;padding:6px 11px 6px 8px;border-radius:999px;background:#ffffff14;color:#F8F9F4!important;font-size:13px!important;max-width:none!important;line-height:1.2!important}
.hero-streak strong{font-weight:700;font-variant-numeric:tabular-nums}
.hero-streak span{color:#D7D9CF}
.hero-streak svg{width:17px;height:17px;flex:none;fill:#FF9F1A;stroke:#FFD600;stroke-width:1.4;stroke-linejoin:round;transform-origin:50% 90%;animation:fx-flame 1.6s ease-in-out infinite}
.hero-streak.is-waiting svg{fill:#8A8C85;stroke:#B9BBB2;animation:none}
.hero-streak.is-milestone{background:linear-gradient(90deg,#FFD60033,#FF9F1A33);box-shadow:0 0 0 1px #FFD60066 inset}
@keyframes fx-flame{0%,100%{transform:scale(1) rotate(-2deg)}50%{transform:scale(1.1,1.16) rotate(2deg)}}
/* Avviso: sale dal basso. */
@keyframes fx-toast{from{opacity:0;translate:0 14px;scale:.96}}
.toast:not([hidden]){animation:fx-toast .32s cubic-bezier(.2,.9,.3,1.2)}
/* Premio aperto: l'emblema entra con un piccolo giro e un bagliore se è vinto. */
@keyframes fx-emblem{from{opacity:0;scale:.6;rotate:-12deg}}
.award-detail .award-emblem{animation:fx-emblem .55s cubic-bezier(.3,1.4,.5,1)}
.award-detail .award-emblem.won{filter:drop-shadow(0 10px 26px #FFD6004d)}
/* Tocchi: le superfici toccabili si abbassano appena sotto il dito. */
.quick-action,.habit-toggle,.fs-item,.shelf-slot,.award-tile,.day-cell,.nb,.theme-options button,.fs-add,.fs-copy,.fs-more{transition:scale .14s ease,background-color .2s}
.quick-action:active,.habit-toggle:active,.fs-item:active,.shelf-slot:active,.award-tile:active,.day-cell:active,.nb:active,.fs-add:active,.fs-copy:active,.fs-more:active{scale:.965}
/* Le schede della barra in basso: l'icona attiva fa un piccolo salto. */
#bnav .nb.active svg{animation:fx-pop .4s cubic-bezier(.3,1.4,.5,1)}
/* Dettaglio del premio: battuta in evidenza, regola sotto. */
.award-detail .award-joke{font-size:16px;line-height:1.45;color:var(--text);max-width:30ch}
.award-detail .award-rule{font-size:13px;color:var(--text-3)}
.settings-subhead{margin-top:20px}
.settings-subhead h2{font-size:17px}
.settings-subhead .chart-caption{margin:4px 0 0}
.sound-options button{min-height:44px;font-size:14px}
/* «completate» stava stretta dentro l'anello del Diario sul telefono. */
@media(max-width:520px){.diary-progress .ring-number span{font-size:10.5px;letter-spacing:-.2px}}

/* IL TUO ANDAMENTO: controlli del periodo, poi tre schede con grafico. Numeri grandi, poche parole. */
.diary-insights-content{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding-bottom:8px}
.trends>*{min-width:0}
.diary-insights-content>*{margin:0}
.trend-controls{display:grid;gap:10px}
.trend-range{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:3px;border-radius:12px;background:var(--surface-alt)}
.trend-range button{min-height:34px;border:0;border-radius:9px;background:transparent;color:var(--text-2);font-size:13px;font-weight:600;transition:background .2s,color .2s,box-shadow .2s}
.trend-range button[aria-checked="true"]{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f,0 0 0 .5px #0000000d}
.trend-nav{display:flex;align-items:center;gap:6px}
.trend-step,.trend-calendar{display:grid;place-items:center;flex:none;width:38px;height:38px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text)}
.trend-step:disabled{opacity:.35}
.trend-step .ui-icon,.trend-calendar .ui-icon{width:18px;height:18px}
.trend-chevron{display:grid;transform:rotate(-90deg)}.trend-chevron.is-back{transform:rotate(90deg)}
.trend-label{flex:1;min-width:0;text-align:center;line-height:1.2}
.trend-label strong{display:block;font-family:'Outfit',var(--font);font-size:16px;font-weight:500;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trend-label small{display:block;margin-top:2px;font-size:11.5px;color:var(--text-3)}
.trend-today{flex:none;min-height:30px;padding:0 11px;border:0;border-radius:999px;background:var(--accent);color:var(--accent-fg);font-size:12px;font-weight:700}
.trend-calendar{margin-left:2px}
.trends{display:grid;gap:14px;margin:0;padding:0;border:0;background:transparent}
.trend-note{display:flex;align-items:flex-start;gap:12px;width:100%;padding:14px 16px;border:1px solid var(--accent-bg);border-radius:18px;background:var(--accent-bg);color:var(--text);text-align:left}
.trend-note-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:11px;background:var(--accent);color:var(--accent-fg)}
.trend-note-icon .ui-icon{width:19px;height:19px}
.trend-note>span:last-child{display:grid;gap:1px;min-width:0}
.trend-note small{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink)}
.trend-note strong{font-size:15px;line-height:1.3}
.trend-note span span{font-size:13px;line-height:1.4;color:var(--text-2)}
.trend-card{position:relative;padding:16px 16px 14px;border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}
.tc-head{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.tc-head h3{flex:1;min-width:0;margin:0;font-family:var(--font);font-size:14px;font-weight:700;letter-spacing:0;color:var(--text)}
.tc-icon{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:9px;background:var(--surface-alt);color:var(--text)}
.tc-icon .ui-icon{width:17px;height:17px}
.tc-icon[data-tone="food"]{background:var(--meal-breakfast-bg);color:var(--meal-breakfast)}
.tc-icon[data-tone="weight"]{background:var(--accent-bg);color:var(--accent-ink)}
.tc-icon[data-tone="move"]{background:var(--meal-lunch-bg);color:var(--meal-lunch)}
.tc-chip{display:inline-flex;align-items:baseline;gap:4px;margin-top:9px;max-width:100%;padding:4px 9px;border-radius:999px;background:var(--surface-alt);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-chip b{font-weight:700;color:var(--text-2)}
.tc-chip small{font-size:11px;font-weight:500;color:var(--text-3);overflow:hidden;text-overflow:ellipsis}
.tc-readout{min-height:78px}
.tc-big{display:flex;align-items:baseline;gap:6px;line-height:1}
.tc-big strong{font-family:'Outfit',var(--font);font-size:34px;font-weight:500;letter-spacing:-1.2px;font-variant-numeric:tabular-nums;color:var(--text)}
.tc-big span{font-size:13px;font-weight:600;color:var(--text-2)}
.tc-big.is-empty strong{color:var(--text-3)}
.tc-sub{margin:6px 0 0;font-size:13px;line-height:1.4;color:var(--text-2)}
.tc-acts{margin-top:2px;color:var(--text)}
.tc-macros{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:9px}
.tc-macro{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text-2);white-space:nowrap}
.tc-macro strong{font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.tc-macro small{font-size:11px;color:var(--text-3)}
.tc-macro i,.tc-legend span:before{content:'';display:inline-block;width:8px;height:8px;border-radius:3px;background:var(--dot,var(--text-3))}
[data-k="p"]{--dot:var(--mk-p)}[data-k="c"]{--dot:var(--mk-c)}[data-k="f"]{--dot:var(--mk-f)}[data-k="o"]{--dot:color-mix(in srgb,var(--text-3) 45%,transparent)}
.tc-legend [data-k="dot"]:before{width:7px;height:7px;border:1.6px solid var(--text-2);border-radius:50%;background:var(--surface)}
.tc-legend [data-k="avg"]:before{width:14px;height:3px;border-radius:2px;background:var(--text)}
.tc-legend [data-k="goal"]:before{width:14px;height:0;border-top:1.5px dashed var(--success);border-radius:0;background:none}
.tc-alcohol{display:flex;align-items:center;gap:7px;margin:9px 0 0;padding:7px 10px;border-radius:10px;background:var(--fk-drink-bg);font-size:12.5px;color:var(--text)}
.tc-alcohol .ui-icon{width:16px;height:16px;color:var(--fk-drink)}
.tc-open{display:inline-flex;align-items:center;gap:4px;margin-top:8px;padding:0;min-height:30px;border:0;background:none;color:var(--accent-ink);font-size:13px;font-weight:700}
.tc-open .ui-icon{width:14px;height:14px}
.tc-plot{position:relative;height:236px;margin:10px -4px 0;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;cursor:crosshair;border-radius:10px}
.tc-plot-short{height:168px}
.tc-plot:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.tc-plot canvas{display:block;width:100%;height:100%}
.tc-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-size:11.5px;color:var(--text-2)}
.tc-legend span{display:inline-flex;align-items:center;gap:5px}
.tc-foot{margin:8px 0 0;font-size:12px;line-height:1.45;color:var(--text-3)}
.tc-gym{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.tc-gym>span:last-child{display:grid;min-width:0}
.tc-gym strong{font-size:14px}
.tc-gym small{font-size:12px;color:var(--text-2)}
.tc-gym-dots{display:flex;gap:5px}
.tc-gym-dots i{width:12px;height:12px;border-radius:50%;border:1.8px solid var(--text-3)}
.tc-gym-dots i.on{border-color:var(--text);background:var(--text)}
.tc-gym-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--surface-alt)}
.tc-gym-icon .ui-icon{width:18px;height:18px}
.tc-weigh{margin-top:12px;padding:12px;border-radius:14px;background:var(--accent-bg)}
.tc-weigh p{display:grid;margin:0 0 9px;font-size:12.5px;color:var(--text-2)}
.tc-weigh p strong{font-size:14px;color:var(--text)}
@media(prefers-reduced-motion:reduce){.trend-range button{transition:none}}
/* In alto: calorie e proteine di oggi, un tocco apre i pasti. */
.diary-progress{flex-wrap:wrap;row-gap:4px}
.hero-food{order:3;flex-basis:100%;display:grid;gap:6px;margin-top:12px;padding:13px 14px;border:0;border-radius:15px;background:#ffffff12;color:#F8F9F4;text-align:left;position:relative;z-index:1}
.hero-food:active{background:#ffffff1c}
.hero-food-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12.5px;color:#D7D9CF}
.hero-food-row.is-protein{margin-top:4px}
.hero-food-label{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#BFC2B6}
.hero-food-value{text-align:right;font-variant-numeric:tabular-nums}
.hero-food-value strong{font-family:'Outfit',var(--font);font-size:17px;font-weight:600;color:#fff}
.hero-food-bar{display:block;height:5px;border-radius:3px;background:#ffffff1f;overflow:hidden}
.hero-food-bar b{display:block;height:100%;border-radius:3px;background:var(--accent);transition:width .6s cubic-bezier(.2,.8,.2,1)}
.hero-food-bar.is-over b{background:#F2A33A}
.hero-food-bar.is-protein b{background:#86ABF4}
@media(prefers-reduced-motion:reduce){.hero-food-bar b{transition:none}}
/* Promemoria discreto quando non c'è niente per oggi. */
.settings-fields .settings-hint{margin:6px 0 -2px}
/* Avatar: bottone nel Profilo, disegno a linee che segue il colore del tema */
button.profile-avatar{border:0;padding:0;cursor:pointer;font:inherit;flex:none}
.profile-avatar{font-family:'Outfit',var(--font,inherit)}
.profile-avatar.has-art{background:var(--surface-alt);color:var(--text)}
.avatar-art{display:grid;place-items:center;width:100%;height:100%}
.avatar-art svg{width:78%;height:78%;display:block}
.avatar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:4px 0 8px}
.avatar-choice{display:grid;justify-items:center;gap:6px;padding:14px 10px;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);font:inherit;text-align:center;cursor:pointer}
.avatar-choice[aria-checked="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.avatar-choice .profile-avatar{width:64px;height:64px;font-size:28px}
.avatar-choice strong{font-size:14px;font-weight:600}.avatar-choice small{font-size:12px;color:var(--text-3);line-height:1.35}
/* Amici */
.friends-card .screen-toolbar{margin-bottom:12px}
.friend-me{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:12px;background:var(--surface-alt);margin-bottom:12px}
.friend-me span{display:grid;gap:2px}.friend-me small{font-size:12px;color:var(--text-3)}.friend-me strong{font-size:17px;font-weight:600;word-break:break-all}
.friend-handle-form,.friend-add-form{display:grid;gap:8px;margin-bottom:12px}
.friend-handle-form .chart-caption{margin:0}
.friends-card .friend-error:empty{display:none}
.friend-title{display:flex;align-items:baseline;gap:6px;font-size:14px;font-weight:600;margin:16px 0 8px}.friend-title small{color:var(--text-3);font-weight:400}
.friend-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.friend-row{display:flex;align-items:center;gap:11px;min-height:52px}
.friend-avatar{width:40px;height:40px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--surface-alt);color:var(--text);font-weight:600;font-size:17px;overflow:hidden}
.friend-copy{display:grid;gap:1px;min-width:0;flex:1}.friend-copy strong{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-copy small{font-size:12px;color:var(--text-3)}
.friend-actions{display:flex;gap:6px;flex:none}
.friend-accept{min-height:40px;padding:0 14px;border:0;border-radius:10px;background:var(--accent);color:var(--accent-fg);font:inherit;font-weight:600;cursor:pointer}
.friend-x{min-width:40px;min-height:40px;font-size:18px}.friend-x.is-armed{font-size:13px;color:var(--danger,#E5484D)}
.own-food-form input{width:100%;min-width:0;min-height:46px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:16px;-webkit-appearance:none;appearance:none}.own-food-form input:focus-visible{outline:2px solid var(--focus);outline-offset:1px}

/* ATTIVITÀ: l'allenamento di oggi in cima, colori della scheda, righe grandi da toccare in palestra. */
.wk-today,.session-card[data-tone],.wk-day{--wk:#FFD600;--wk-ink:#191B20;--wk-soft:#FFF8CD}
[data-tone][data-tone="pink"]{--wk:#F48FB1;--wk-ink:#191B20;--wk-soft:#FDE8F0}
[data-tone][data-tone="green"]{--wk:#7ED3A2;--wk-ink:#191B20;--wk-soft:#E3F6EA}
[data-tone][data-tone="blue"]{--wk:#8DB4F5;--wk-ink:#191B20;--wk-soft:#E6EEFD}
[data-tone][data-tone="orange"]{--wk:#F7B267;--wk-ink:#191B20;--wk-soft:#FDEFDD}
:root[data-theme="dark"] [data-tone],:root[data-theme="dark"] .wk-today{--wk-soft:color-mix(in srgb,var(--wk) 16%,var(--surface))}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) [data-tone],:root:not([data-theme="light"]) .wk-today{--wk-soft:color-mix(in srgb,var(--wk) 16%,var(--surface))}}
.wk-today{position:relative;overflow:visible!important;margin:0 0 26px;padding:22px 20px 20px!important;border-radius:24px!important}
.wk-today::before{content:"";position:absolute;inset:0 0 auto;height:118px;border-radius:24px 24px 0 0;background:linear-gradient(180deg,var(--wk-soft),transparent);pointer-events:none}
.wk-today>*{position:relative}
.wk-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.wk-head .eyebrow{margin:0}
.wk-pill{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:4px 11px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:12px;font-weight:700;color:var(--text-2);white-space:nowrap}
.wk-pill .ui-icon{width:14px;height:14px}
.wk-today[data-state="live"] .wk-pill{background:var(--wk);border-color:transparent;color:var(--wk-ink)}
.wk-today[data-state="live"] .wk-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;animation:wk-blink 1.2s ease-in-out infinite}
.wk-today[data-state="done"] .wk-pill{background:var(--success);border-color:transparent;color:#fff}
@keyframes wk-blink{50%{opacity:.25}}
.wk-sub{margin:0;color:var(--text-2);font-size:14px}
/* Tempo e recupero restano in vista mentre scorri gli esercizi. */
.wk-clock{display:block;font-family:'Outfit',var(--font);font-size:38px;line-height:1.1;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.wk-actions{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-top:18px}
.wk-today[data-state="done"] .wk-actions{flex-direction:row}
.wk-today[data-state="done"] .wk-actions .quiet-button{flex:1}
.wk-start{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:56px;border:0;border-radius:16px;background:var(--wk);color:var(--wk-ink);font-size:17px;font-weight:700;cursor:pointer;box-shadow:0 10px 24px -12px var(--wk)}
.wk-start .ui-icon{width:20px;height:20px}
.wk-start:active{transform:scale(.98)}
.wk-link{min-height:44px;border:0;background:none;color:var(--text-2);font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.wk-today .is-armed{color:var(--danger);border-color:var(--danger)}
.wk-stale{margin:0 0 16px;padding:12px 14px;border-radius:14px;background:var(--accent-bg);font-size:14px}
.wk-stale p{margin:0 0 8px}.wk-stale div{display:flex;gap:8px;flex-wrap:wrap}
.wk-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.wk-section-head h2{margin:0;font-size:21px;letter-spacing:-.4px;font-weight:500}
.wk-section-head>span{font-size:13px;color:var(--text-2)}
.wk-week{margin:0 0 22px}
.wk-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.wk-day{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 0 8px;border-radius:16px;background:var(--surface);border:1px solid var(--border)}
.wk-day.is-today{border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}
.wk-dl{font-size:12px;font-weight:700;color:var(--text-2)}
.wk-dot{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface-alt);color:var(--text-3)}
.wk-dot .ui-icon{width:16px;height:16px}
.wk-day[data-kind="done"] .wk-dot{background:var(--wk);color:var(--wk-ink)}
.wk-day[data-kind="done"] .wk-dot .ui-icon{stroke-width:2.8}
.wk-day[data-kind="other"] .wk-dot{background:var(--text);color:var(--surface)}
.wk-day[data-kind="plan"] .wk-dot{background:transparent;border:2px dashed var(--wk)}
.wk-day[data-kind="empty"] .wk-dot{background:transparent;border:1.5px solid var(--border)}
.wk-dm{min-height:16px;font-size:11px;font-weight:600;color:var(--text-2);font-variant-numeric:tabular-nums}
.training-actions{margin:0 0 24px}
.training-entry #add-act-btn.wk-other,.training-entry #add-act-btn.wk-other:hover{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;padding:12px 18px;border:1.5px dashed var(--border);border-radius:15px;background:transparent;color:var(--text);font-size:15px;font-weight:600;box-shadow:none;cursor:pointer}
.wk-other .ui-icon{width:18px;height:18px}
.wk-history{margin:0 0 22px}
.wk-history-sum{margin:-6px 0 10px;font-size:13px;color:var(--text-2)}
.wk-history .session-day{margin:0 0 4px}
.wk-date{margin:14px 0 6px;font-size:13px;font-weight:700;color:var(--text-2);text-transform:capitalize;letter-spacing:0}
.wk-history .session-list{display:grid;gap:8px}
.wk-history .session-card{padding:12px 14px!important;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wk-history .session-header{display:flex;align-items:center;gap:12px}
.session-card[data-tone] .act-emoji{background:var(--wk-soft);color:var(--text)}
.wk-more{margin:0 0 12px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}
.wk-more>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:12px 16px;list-style:none;cursor:pointer}
.wk-more>summary::-webkit-details-marker{display:none}
.wk-more>summary>span{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center}
.wk-more>summary>span>.ui-icon{grid-row:span 2;width:22px;height:22px;color:var(--text-2)}
.wk-more>summary strong{font-size:16px}.wk-more>summary small{font-size:13px;color:var(--text-2)}
.wk-more>summary>.ui-icon{transition:transform .2s ease;color:var(--text-3)}
.wk-more[open]>summary>.ui-icon{transform:rotate(180deg)}
.wk-more>.stopwatch{margin:0;border:0;box-shadow:none}
@media(prefers-reduced-motion:reduce){.wk-today[data-state="live"] .wk-pill::before{animation:none}}
.wk-more .stopwatch>.screen-toolbar{display:none}
/* Riquadri: ogni sezione è un blocco a sé, staccato dagli altri. */
.tile-stack{display:grid;gap:16px}
.tile-stack>.tile-slot>.card{margin:0}
@media(min-width:1120px){.profile-tiles{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}
/* Menu dell'ingranaggio: tre azioni grandi, niente testo in più. */
.meal-dialog.app-menu>h2{display:none}
.app-menu-list{display:grid;gap:8px;padding-top:18px}
.app-menu-list button{display:flex;align-items:center;gap:14px;min-height:58px;padding:0 18px;border:1px solid var(--border);border-radius:16px;background:var(--surface-alt);color:var(--text);font:inherit;font-size:16px;font-weight:600;text-align:left}
.app-menu-list button .ui-icon{width:22px;height:22px;flex:none}
.app-menu-list button.is-danger{color:var(--danger)}
.app-menu-list button:active{transform:scale(.98)}
/* Il menu «Modifica» di un pasto: lo stesso menu, con le icone nel colore del pasto. */
.meal-dialog[data-meal] .app-menu-list{padding-top:4px}
.meal-dialog[data-meal] .app-menu-list button:not(.is-danger) .ui-icon{color:var(--mc)}
.app-menu-list button:disabled{opacity:.6}
/* Il nome del piatto apre la ricetta, subito sotto: un passo per riga. */
.fs-item.fs-dish[data-recipe-toggle]::after{content:"";flex:none;width:8px;height:8px;margin:0 4px 0 auto;border-right:2.5px solid #1A1600;border-bottom:2.5px solid #1A1600;transform:rotate(45deg) translateY(-2px);opacity:.55;transition:transform .2s ease}
.fs-item.fs-dish[aria-expanded="true"]::after{transform:rotate(-135deg) translate(-2px,-1px)}
.fs-recipe{margin:0 0 8px;padding:12px 14px 12px 12px;border-radius:14px;background:var(--surface-alt);border:1px solid var(--border);animation:fs-recipe-in .22s ease}
.fs-recipe ol{margin:0;padding-left:22px;display:grid;gap:8px;font-size:14px;line-height:1.5;color:var(--text-2)}
.fs-recipe li::marker{color:var(--accent-ink);font-weight:700}
.fs-recipe+.fs-item{border-top:0}
@keyframes fs-recipe-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
/* Organizza la pagina: una riga per riquadro, frecce per spostare e occhio per nascondere. */
.organize-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 18px}
.organize-head h1{margin:0;font-size:30px;letter-spacing:-.02em}
.organize-done{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border:0;border-radius:999px;background:var(--accent);color:#111;font:inherit;font-weight:700}
.organize-done .ui-icon{width:18px;height:18px}
.organize-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.organize-row{display:grid;grid-template-columns:44px 1fr 44px 44px 44px;align-items:center;gap:6px;min-height:68px;padding:8px 10px 8px 12px;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 6px 18px rgba(0,0,0,.12);transition:opacity .2s}
.organize-row strong{font-size:16px}
.organize-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--accent-bg);color:var(--accent-ink)}
.organize-icon .ui-icon{width:22px;height:22px}
.organize-btn{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:transparent;color:var(--text-2)}
.organize-btn .ui-icon{width:20px;height:20px}
.organize-btn:not(.organize-eye) .ui-icon{transform:rotate(180deg)}
.organize-btn.is-down .ui-icon{transform:none}
.organize-btn:disabled{opacity:.25}
.organize-eye[aria-pressed="true"]{color:var(--accent-ink)}
.organize-row.is-hidden{opacity:.45}
.organize-row.is-hidden strong{text-decoration:line-through;text-decoration-thickness:1px}
/* ===== Riquadri in rilievo (tutta l'app) ===== */
:root{--tile-sheen:#FFFFFF99;--tile-highlight:#FFFFFF;--tile-edge:#1720320D;--tile-shadow:0 5px 16px #1720320A;--slab:#CCD1D8;--day-top:#FFFFFF;--day-bottom:#ECEFF3;--day-border:#D4D9E1;--crack-cavity:#777F89;--crack-core:#626B77;--crack-glow:#FFFFFFE6;--crack-warm:#996A36}
:root[data-theme="dark"]{--tile-sheen:#FFFFFF08;--tile-highlight:#FFFFFF12;--tile-edge:#00000038;--tile-shadow:0 6px 16px #00000026;--slab:#0A0B0D;--day-top:#30343A;--day-bottom:#1C1E21;--day-border:#444A53;--crack-cavity:#08090B;--crack-core:#08090B;--crack-glow:#FFFFFF52;--crack-warm:#D49A56}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--tile-sheen:#FFFFFF08;--tile-highlight:#FFFFFF12;--tile-edge:#00000038;--tile-shadow:0 6px 16px #00000026;--slab:#0A0B0D;--day-top:#30343A;--day-bottom:#1C1E21;--day-border:#444A53;--crack-cavity:#08090B;--crack-core:#08090B;--crack-glow:#FFFFFF52;--crack-warm:#D49A56}}
.card{border-radius:22px;border:1px solid var(--border);background:linear-gradient(var(--tile-sheen),transparent 64%),var(--surface);box-shadow:inset 0 1px var(--tile-highlight),inset 0 -2px var(--tile-edge),var(--tile-shadow)}
/* Pasti della Dieta: cinque riquadri staccati, con lo sfondo della pagina in mezzo. */
.meal-tiles{display:grid;gap:12px;margin-bottom:12px}
.meal-tiles>.free-slot,.meal-tiles>.meal-slot{border:1px solid var(--border);border-radius:22px;background:linear-gradient(var(--tile-sheen),transparent 64%),var(--surface);box-shadow:inset 0 1px var(--tile-highlight),inset 0 -2px var(--tile-edge),var(--tile-shadow);padding:16px 18px}
.meal-tiles>.free-slot:last-child,.meal-tiles>.meal-slot:last-child{border-bottom:1px solid var(--border)}
/* Giorni della settimana: piastrelle in 3D con lo spessore sotto. */
.day-row{gap:6px}
.day-cell{position:relative;isolation:isolate;border:1px solid var(--day-border);border-radius:14px;background:linear-gradient(var(--day-top),var(--day-bottom));box-shadow:inset 0 1px var(--tile-highlight),0 3px 0 -1px var(--slab),0 5px 8px #00000024;min-height:64px;overflow:visible}
.day-cell .dc-week,.day-cell .dc-num{position:relative;z-index:2}
.day-cell .dc-num{font-size:20px}
.day-cell.current-day{border-color:var(--day-border);box-shadow:inset 0 1px var(--tile-highlight),0 3px 0 -1px var(--slab),0 5px 8px #00000024}
.day-cell.current-day .dc-num{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:4px}
.day-cell.selected-day{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent),inset 0 1px var(--tile-highlight),0 3px 0 -1px var(--slab),0 5px 8px #00000024}
.day-cell.logged-day:not(.current-day) .dc-num{text-decoration:none}
.day-cell:active{transform:translateY(1px)}
.week-day.meal-tiles,.week-day.meal-tiles.is-today{background:none;border:0;border-radius:0;box-shadow:none;padding:0;overflow:visible;margin-bottom:12px!important}
.day-row{padding-bottom:6px}
/* Avatar: il leprotto esce dal suo cerchio, con le orecchie sopra il bordo. */
.avatar-art{position:relative;overflow:visible}
.avatar-art img{position:absolute;left:50%;bottom:0;width:118%;height:auto;transform:translateX(-50%);display:block;pointer-events:none;user-select:none;-webkit-user-drag:none}
.profile-avatar.has-art,.friend-avatar,.avatar-choice .profile-avatar{overflow:visible}
.profile-avatar.has-art{width:76px;height:76px;margin-top:14px;background:radial-gradient(circle at 50% 38%,#FFD60033,transparent 70%),var(--surface-alt);box-shadow:inset 0 1px var(--tile-highlight),inset 0 -2px var(--tile-edge),0 6px 14px #00000030;-webkit-mask:none}
.profile-avatar.has-art .avatar-art{border-radius:50%;clip-path:inset(-40% 0 0 0 round 0 0 50% 50%)}
.avatar-choice .profile-avatar.has-art{width:72px;height:72px;margin-top:18px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Sgarro: il riquadro del pasto si colora di rosso, più acceso quanto più è grosso lo sgarro (--heat da .25 a 1). */
.meal-cheat,.meal-tiles>.meal-cheat{--heat:.5;box-shadow:inset 0 1px var(--tile-highlight),inset 0 -2px var(--tile-edge),0 6px 18px color-mix(in srgb,var(--danger) calc(var(--heat)*40%),transparent);border-color:color-mix(in srgb,var(--danger) calc(var(--heat)*100%),var(--border));background:linear-gradient(160deg,color-mix(in srgb,var(--danger) calc(var(--heat)*42%),transparent),color-mix(in srgb,var(--danger) calc(var(--heat)*18%),transparent)),var(--surface)}
/* Calendario del mese: piastrelle in rilievo, gialle nei giorni di allenamento. */
.cal-cell:not(.empty):not(.before-start){border:1px solid var(--day-border);background:linear-gradient(var(--day-top),var(--day-bottom));box-shadow:inset 0 1px var(--tile-highlight),0 3px 0 -1px var(--slab)}
.cal-cell.trained:not(.empty):not(.before-start){border-color:#C9A800;background:linear-gradient(#FFE24D,#FFD600);color:#1A1600;box-shadow:inset 0 1px #FFF6B0,0 3px 0 -1px #9C8200,0 4px 10px #FFD60033}
.cal-cell.trained span{font-weight:700}
.cal-cell.trained.future-cell{opacity:1}
.cal-detail:empty{display:none}
/* Bioimpedenza: riquadro compatto, i dettagli nella sua scheda. */
.body-comp{margin-top:0;padding:16px 16px 14px}
.bc-head{display:flex;align-items:center;gap:10px;min-height:44px}
.bc-head h2{margin:0;font-size:16px;font-weight:600;flex:1;min-width:0}
.bc-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--accent-bg);color:var(--accent-ink)}
.bc-icon .ui-icon{width:20px;height:20px}
.bc-when{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}
.bc-add{display:grid;place-items:center;width:44px;height:44px;margin-right:-6px;border:0;border-radius:12px;background:transparent;color:var(--text-2)}
.bc-add .ui-icon{width:22px;height:22px}
.bc-open{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;margin-top:8px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left}
.bm{display:grid;gap:2px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface-alt)}
.bm strong{font-family:'Outfit',var(--font);font-size:34px;line-height:1.05;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.bm strong small{font-size:15px;font-weight:500;color:var(--text-3);margin-left:2px}
.bm span{font-size:13px;color:var(--text-2)}
.bm-delta{font-style:normal;font-size:14px;font-weight:700;color:var(--text-3);font-variant-numeric:tabular-nums}
.bm-delta.good{color:var(--success)}.bm-delta.bad{color:var(--danger)}
.bc-verdict{grid-column:1/-1;justify-self:start;display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:700}
.bc-verdict::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.bc-verdict[data-verdict="good"]{background:color-mix(in srgb,var(--success) 16%,transparent);color:var(--success)}
.bc-verdict[data-verdict="mid"]{background:var(--accent-bg);color:var(--accent-ink)}
.bc-verdict[data-verdict="bad"]{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}
.bc-go{position:absolute;right:10px;top:12px;color:var(--text-3)}
.bc-go .ui-icon{width:18px;height:18px;transform:rotate(-90deg)}
.body-comp[data-verdict="good"]{border-color:color-mix(in srgb,var(--success) 45%,var(--border))}
.body-comp[data-verdict="bad"]{border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}
.body-comp.is-empty .bc-head{min-height:44px}
.bc-compare{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.bc-compare button{min-height:36px;padding:0 12px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-2);font:inherit;font-size:13px}
.bc-compare button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-bg);color:var(--accent-ink)}
.body-detail [data-bd-add] .ui-icon{width:18px;height:18px;vertical-align:-3px}
.bc-go{top:auto;bottom:4px;right:6px}
/* Aggiungi alimenti: un solo scorrimento, ricerca sempre in alto, alimenti in riquadri da toccare. */
.picker-grid{max-height:none;overflow:visible}
.treat-picker{margin-top:10px;border:0;border-radius:0;padding:0;background:none}
.treat-picker .picker-hint{display:none}
.treat-picker .list-search{position:sticky;top:0;z-index:4;margin:0 0 10px;min-height:50px;border-radius:14px;box-shadow:0 -14px 0 var(--surface),0 10px 14px -10px #00000066}
.treat-picker .picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.treat-picker .picker-item{position:relative;align-content:start;gap:4px;min-height:112px;padding:12px;border-radius:16px;background:linear-gradient(var(--tile-sheen),transparent 64%),var(--surface-alt);box-shadow:inset 0 1px var(--tile-highlight),inset 0 -2px var(--tile-edge)}
.treat-picker .picker-item.has-sticker{grid-template-columns:1fr}
.treat-picker .picker-item.has-sticker>.food-sticker{grid-row:auto;align-self:start;margin-bottom:4px}
.treat-picker .picker-item.has-sticker>:not(.food-sticker){grid-column:1}
.treat-picker .pi-name{font-size:14px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.treat-picker .pi-count{position:absolute;top:10px;right:10px;margin:0;min-width:28px;height:28px;padding:0 8px;display:inline-grid;place-items:center;border-radius:999px;background:var(--accent);color:#111}
.treat-picker .pi-count[hidden]{display:none}
.treat-picker .picker-item.chosen{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent),inset 0 1px var(--tile-highlight)}
.treat-picker .picker-item:active{transform:scale(.97)}
.pi-kcal{font-family:'Outfit',var(--font);font-size:15px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
.pi-meta{font-size:12px}
.save-count{display:block;font-size:12px;font-weight:600;opacity:.8;font-variant-numeric:tabular-nums}
.treat-picker .fp-create{grid-column:1/-1}
#extra-summary{position:static}
.treat-picker .food-chips button{min-height:40px}
.picker-item.is-combo .food-sticker{--fk:var(--accent-ink);--fk-bg:var(--accent-bg)}
.meal-dialog:has(#extra-picker) .md-mini{display:none}
/* Banner del premio nel Diario: il trofeo piccolo, il nome, il livello. Resta tutto il giorno. */
.award-banners{display:grid;gap:10px;margin:0 0 16px}
.award-banner{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:72px;padding:10px 14px 10px 10px;border:1px solid #C9A84C;border-radius:20px;background:radial-gradient(circle at 18% 50%,#FFD60033,transparent 55%),linear-gradient(135deg,#2A2414,#17150F);color:#FFF6D6;font:inherit;text-align:left;overflow:hidden;box-shadow:inset 0 1px #FFE9A040,0 8px 20px #00000040}
.award-banner::after{content:"";position:absolute;inset:-40%;background:linear-gradient(105deg,transparent 42%,#FFF3C060 50%,transparent 58%);transform:translateX(-60%);animation:award-shine 3.2s ease-in-out 1s infinite;pointer-events:none}
@keyframes award-shine{0%,60%{transform:translateX(-60%)}100%{transform:translateX(60%)}}
.award-banner .award-emblem.banner{width:54px;height:54px;flex:none;filter:drop-shadow(0 4px 8px #00000080)}
.award-banner .award-emblem.banner img{width:100%;height:100%}
.ab-copy{flex:1;min-width:0;display:grid;gap:2px}
.ab-copy small{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#FFD600}
.ab-copy strong{font-family:'Outfit',var(--font);font-size:19px;font-weight:600;line-height:1.15}
.ab-go{color:#FFD600}.ab-go .ui-icon{width:18px;height:18px;transform:rotate(-90deg)}
.award-banner-more{justify-self:start;min-height:40px;padding:0 14px;border:1px solid var(--accent);border-radius:999px;background:var(--accent-bg);color:var(--accent-ink);font:inherit;font-size:13px;font-weight:600}
:root[data-theme="light"] .award-banner,:root:not([data-theme="dark"]) .award-banner{color:#FFF6D6}
@media(prefers-reduced-motion:reduce){.award-banner::after{animation:none;display:none}}
/* I tuoi passi: stessa altezza in 30 giorni, 12 mesi e anni. */
.steps-chart .sc-axis{height:16px}
.steps-chart .sc-readout{height:42px;line-height:21px;overflow:hidden}
.steps-chart .weight-summary .wl{min-height:2.7em}
/* Tutte le pesate: aperte, la voce sparisce; si richiude da sola cambiando pagina. */
.wl-more[open]>summary{display:none}
/* Andamento aperto: la freccia scende in fondo, dopo i grafici. */
.diary-insights[open]>summary{display:none}
.diary-insights[open]{padding-top:20px}
.diary-insights-close{display:flex;justify-content:center;align-items:center;width:100%;min-height:96px;border:0;background:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.diary-insights-close .diary-insights-icon{animation:none}
.diary-insights-close .diary-insights-icon::after{display:none}
.diary-insights-close:active .diary-insights-icon{transform:scale(.94)}
/* Palestra libera: esercizi a riquadri, serie con + e −. */
.gym-free .wk-head{min-height:32px}
.gym-free .wk-clock{font-family:'Outfit',var(--font);font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}
.gym-free .wk-start{width:100%;margin-top:14px}
.gym-repeat{display:flex;align-items:center;gap:12px;width:100%;margin-top:10px;min-height:64px;padding:10px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface-alt);color:var(--text);font:inherit;text-align:left}
.gym-repeat strong{display:block;font-size:15px}.gym-repeat small{display:block;font-size:13px;color:var(--text-2)}
.ex-ico{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:12px;background:var(--accent-bg);color:var(--accent-ink)}
.ex-ico .ui-icon{width:20px;height:20px}
.gx-list{display:grid;gap:12px;margin-top:14px}
.gx{padding:12px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(var(--tile-sheen),transparent 64%),var(--surface-alt);box-shadow:inset 0 1px var(--tile-highlight),inset 0 -2px var(--tile-edge)}
.gx-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.gx-head strong{flex:1;min-width:0;font-size:16px;line-height:1.25}
.gx-x{display:grid;place-items:center;flex:none;width:40px;height:40px;border:0;border-radius:12px;background:transparent;color:var(--text-3)}
.gx-x .ui-icon{width:18px;height:18px}
.gx-set{display:flex;align-items:center;gap:8px;padding:4px 0}
.gx-n{width:18px;flex:none;font-size:13px;font-weight:700;color:var(--text-3);text-align:center}
.gx-step{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;flex:1;min-width:0;height:48px;border:1px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden}
.gx-step.is-wide{flex:1}
.gx-step button{height:100%;border:0;background:transparent;color:var(--text);font-size:22px;font-weight:500}
.gx-step button:active{background:var(--accent-bg)}
.gx-step label{display:flex;align-items:baseline;justify-content:center;gap:3px;min-width:0}
.gx-step input{width:100%;max-width:52px;min-width:0;padding:0;border:0;background:transparent;color:var(--text);font-family:'Outfit',var(--font);font-size:20px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.gx-step input:focus{outline:none}
.gx-step small{font-size:12px;color:var(--text-3)}
.gx-addset{display:inline-flex;align-items:center;gap:6px;margin-top:6px;min-height:40px;padding:0 12px;border:1px dashed var(--border);border-radius:12px;background:transparent;color:var(--text-2);font:inherit;font-size:14px}
.gx-addset .ui-icon{width:16px;height:16px}
.gym-add{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;min-height:56px;border:2px dashed color-mix(in srgb,var(--accent) 60%,var(--border));border-radius:18px;background:var(--accent-bg);color:var(--accent-ink);font:inherit;font-size:16px;font-weight:700}
.gym-add .ui-icon{width:20px;height:20px}
.gym-free .wk-actions{display:grid;gap:8px;margin-top:14px}
.gym-done-list,.session-exercises{list-style:none;margin:12px 0 4px;padding:0;display:grid;gap:8px}
.gym-done-list li{display:grid;grid-template-columns:38px 1fr;column-gap:10px;align-items:center}
.gym-done-list li .ex-ico{grid-row:1/span 2}
.gym-done-list strong,.session-exercises strong{font-size:14px;font-weight:600}
.gym-done-list small,.session-exercises small{font-size:13px;color:var(--text-2);font-variant-numeric:tabular-nums}
.session-exercises{margin:8px 0 0 52px;gap:4px}
.session-exercises li{display:flex;justify-content:space-between;gap:10px}
/* Libreria degli esercizi: riquadri da toccare, segnati con la spunta. */
.exercise-library .list-search{position:sticky;top:0;z-index:4;margin:0 0 10px;box-shadow:0 -14px 0 var(--surface)}
.exercise-library .food-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 0 10px;padding-bottom:4px}
.exercise-library .food-chips::-webkit-scrollbar{display:none}
.exercise-library .food-chips button{flex:none;min-height:40px}
.ex-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ex-tile{position:relative;display:grid;align-content:start;gap:6px;min-height:118px;padding:12px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(var(--tile-sheen),transparent 64%),var(--surface-alt);box-shadow:inset 0 1px var(--tile-highlight),inset 0 -2px var(--tile-edge);color:var(--text);font:inherit;text-align:left}
.ex-tile strong{font-size:14px;line-height:1.3}
.ex-tile small{font-size:12px;color:var(--text-2);font-variant-numeric:tabular-nums}
.ex-check{position:absolute;top:10px;right:10px;display:none;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#111}
.ex-check .ui-icon{width:16px;height:16px}
.ex-tile[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.ex-tile[aria-pressed="true"] .ex-check{display:grid}
.ex-tile:active{transform:scale(.97)}
.gx-step label{display:flex;align-items:baseline;justify-content:center;gap:2px}
.gx-step input{flex:0 1 auto;width:3.2ch;max-width:none;text-align:center}
.gx-step input::placeholder{color:var(--text-3)}
.gx-step{grid-template-columns:38px minmax(0,1fr) 38px;height:52px}
.gx-step label{display:grid;justify-items:center;align-content:center;gap:0;line-height:1}
.gx-step input{flex:none;width:100%;max-width:64px;height:24px;font-size:20px!important;text-align:center}
.gx-step small{font-size:10px;line-height:12px;text-transform:uppercase;letter-spacing:.04em}
.gx-sets-tools{display:flex;gap:8px}
/* Elenco degli alimenti: spazio tra un gruppo di riquadri e l'altro; i piatti sono riquadri gialli. */
.treat-picker .fp-results>*+*,.treat-picker .fp-usual-box+.fp-results{margin-top:8px}
.treat-picker .fp-section+.fp-section{margin-top:4px}
.treat-picker .picker-item.is-combo,.quick-chip{border-color:#C9A800;background:linear-gradient(160deg,#FFE34D,#FFD600);color:#1A1600;box-shadow:inset 0 1px #FFF6B0,inset 0 -2px #00000018}
.treat-picker .picker-item.is-combo .pi-name,.treat-picker .picker-item.is-combo .pi-kcal{color:#1A1600}
.treat-picker .picker-item.is-combo .pi-meta{color:#4A4000}
.treat-picker .picker-item.is-combo .food-sticker{--fk:#1A1600;--fk-bg:#FFFFFF66}
.quick-chip strong,.quick-chip em{color:#1A1600}.quick-chip small{color:#4A4000}
/* Icone 3D degli alimenti: niente cerchio colorato, solo il cibo. */
.food-sticker.has-img{background:none;border-radius:0}
.food-sticker.has-img img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 2px 3px #00000040)}
.treat-picker .picker-item .food-sticker.has-img{width:44px;height:44px}
.treat-picker .picker-item.is-combo .food-sticker.has-img{background:none}
/* Orario dell'allenamento e frecce per l'ordine degli esercizi. */
.gym-times{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.gym-times label{display:grid;gap:4px;padding:8px 12px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.gym-times span{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.gym-times input{width:100%;min-height:32px;padding:0;border:0;background:transparent;color:var(--text);font-family:'Outfit',var(--font);font-size:20px!important;font-weight:600}
.gx-head .gx-x{width:36px;height:36px}
.gx-move .ui-icon{transform:rotate(180deg)}
.gx-move.is-down .ui-icon{transform:none}
.gx-move:disabled{opacity:.25}
/* Il piatto come intestazione: una fascia gialla sopra i suoi alimenti. */
.fs-item.fs-dish{margin:4px 0 6px;padding:10px 12px;min-height:52px;border-radius:14px;background:linear-gradient(160deg,#FFE34D,#FFD600);color:#1A1600;box-shadow:inset 0 1px #FFF6B0,inset 0 -2px #00000018}
.fs-item.fs-dish .fs-name{font-family:'Outfit',var(--font);font-size:17px;font-weight:600;color:#1A1600}
.fs-item.fs-dish+.fs-item{border-top:0}
.recent-more[open]>summary{display:none}
/* Cardio: i dati del display della macchina, un campo ciascuno. */
.gx-cardio{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:6px;margin-top:6px}
.gx-cardio label{display:grid;justify-items:center;gap:0;padding:6px 4px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.gx-cardio input{width:100%;height:26px;padding:0;border:0;background:transparent;color:var(--text);font-family:'Outfit',var(--font);font-size:18px!important;font-weight:600;text-align:center}
.gx-cardio input:focus{outline:none}
.gx-cardio small{font-size:10px;line-height:12px;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}
.gx-cardio{grid-template-columns:repeat(auto-fit,minmax(58px,1fr))}
/* Icone dei pasti: come quelle degli alimenti, senza il quadrato colorato. */
.meal-ico.has-img{background:none;border-radius:0}
.meal-ico.has-img img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 2px 3px #00000040)}
/* Gerarchia del pasto: prima il nome del pasto, poi il piatto, poi gli alimenti. */
.free-slot .fs-head{margin-bottom:10px}
.free-slot .wm-type{gap:12px;font-family:'Outfit',var(--font);font-size:22px;font-weight:600;letter-spacing:.02em;text-transform:none}
.free-slot .wm-type .meal-ico{width:44px;height:44px}
.free-slot .fs-total{font-family:'Outfit',var(--font);font-size:18px}
.fs-item.fs-dish .fs-name{font-size:16px}

/* Giorni: piastrella gialla se ti sei allenato, numero e giorno rossi nello sgarro (più rossi quanto più grosso, --heat da .4 a 1). */
:root{--cheat-ink:#D7141F;--cheat-on-yellow:#C00010}
:root[data-theme="dark"]{--cheat-ink:#FF3B46}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--cheat-ink:#FF3B46}}
.day-cell.trained{border-color:#C9A800;background:linear-gradient(#FFE24D,#FFD600);color:#1A1600;box-shadow:inset 0 1px #FFF6B0,0 3px 0 -1px #9C8200,0 5px 10px #FFD60033}
.day-cell.trained.selected-day{border-color:var(--text);box-shadow:inset 0 0 0 2px var(--text),0 3px 0 -1px #9C8200}
.day-cell.trained.future-day{opacity:1}
.day-cell.is-cheat{--heat:.6}
.day-cell.is-cheat .dc-week,.day-cell.is-cheat .dc-num,.cal-cell.is-cheat span{color:color-mix(in srgb,var(--cheat-ink) calc(var(--heat)*100%),var(--text));font-weight:800}
.day-cell.is-cheat .dc-week{opacity:1}
.day-cell.trained.is-cheat .dc-week,.day-cell.trained.is-cheat .dc-num,.cal-cell.trained.is-cheat span{color:color-mix(in srgb,var(--cheat-on-yellow) calc(var(--heat)*100%),#1A1600)}/* Scheda di un alimento e confronto fino a tre */
.food-row[data-food-row]{cursor:pointer;-webkit-tap-highlight-color:transparent}
.fr-open{border:0;background:none;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;min-height:0;letter-spacing:inherit}
.food-row[data-food-row]:active{opacity:.7}
.food-sticker.xl{width:78px;height:78px}.food-sticker.xl svg{width:40px;height:40px}
.food-sticker.lg{width:54px;height:54px}.food-sticker.lg svg{width:28px;height:28px}
.food-sheet [data-macro="k"]{--mk:var(--mk-k)}.food-sheet [data-macro="p"],.food-sheet [data-macro="pd"]{--mk:var(--mk-p)}.food-sheet [data-macro="c"]{--mk:var(--mk-c)}.food-sheet [data-macro="f"]{--mk:var(--mk-f)}.food-sheet [data-macro="fb"]{--mk:var(--success)}.food-sheet [data-macro="x"]{--mk:var(--text-3)}
.fs-hero{display:flex;align-items:center;gap:16px;margin:2px 0 16px}
.fs-hero-text{flex:1;min-width:0;display:grid}
.fs-cat{font-size:12px;color:var(--text-3)}
.fsh-kcal{font-size:15px;color:var(--text-2);line-height:1.15}
.fsh-kcal strong{font-family:'Outfit',var(--font);font-size:46px;font-weight:600;color:var(--text);letter-spacing:-1.5px;margin-right:3px}
.fs-per{font-size:12px;color:var(--text-3)}
.fs-hero .fav-star{align-self:flex-start;margin:-6px -8px 0 0}
.fs-mode{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;padding:4px;border-radius:12px;background:var(--surface-alt);margin:0 0 18px}
.fs-mode button{border:0;border-radius:9px;background:none;min-height:38px;font-size:13px;font-weight:600;color:var(--text-2);padding:6px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fs-mode button[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #0000002a}
.fs-split{margin:0 0 20px}
.fs-split-bar{display:flex;gap:3px;height:16px}
.fs-split-bar i{display:block;min-width:4px;border-radius:5px;background:var(--mk);transform-origin:left;animation:fs-grow .5s cubic-bezier(.2,.8,.2,1) both}
.fs-split-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:9px;font-size:12px;color:var(--text-2)}
.fs-split-legend span::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--mk);margin-right:6px;vertical-align:1px}
.fs-split-legend b{color:var(--text);font-weight:700}
.fs-macros{display:grid;gap:13px;margin-bottom:18px}
.fs-macro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:baseline;font-size:13px;color:var(--text-2)}
.fs-macro b{font-variant-numeric:tabular-nums;color:var(--text);font-size:15px}
.fs-track{grid-column:1/-1;display:block;height:8px;border-radius:5px;background:var(--border);overflow:hidden}
.fs-track i{display:block;height:100%;border-radius:5px;background:var(--mk);transform-origin:left;animation:fs-grow .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes fs-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.fs-track i,.fs-split-bar i{animation:none}}
.fs-facts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
.fs-facts span{font-size:12px;color:var(--text-2);background:var(--surface-alt);border-radius:999px;padding:6px 12px}
.fs-facts b{color:var(--text)}
.fs-picker{margin-top:16px;border:1px solid var(--accent-bg);background:var(--accent-bg);border-radius:14px;padding:13px}
.food-sheet-dialog .edit-actions [hidden]{display:none}
.food-sheet-dialog [data-fs-add]{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.food-sheet-dialog [data-fs-add] .ui-icon{width:18px;height:18px}
.fc-grid{display:grid;grid-template-columns:repeat(var(--fc-n),minmax(0,1fr));gap:4px 8px}
.fc-food{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:14px 6px 10px;border-radius:16px;background:var(--surface-alt);text-align:center}
.fc-name{font-size:12.5px;line-height:1.3;font-weight:600;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.fc-portion{font-size:11px;color:var(--text-3);margin-top:auto}
.fc-remove{position:absolute;top:0;right:0;width:34px;height:34px;min-height:0;padding:0;border:0;border-radius:50%;background:none;color:var(--text-3);font-size:20px;line-height:1}
.fc-label{grid-column:1/-1;margin-top:12px;font-size:12px;font-weight:600;color:var(--text-3)}
.fc-cell{display:grid;gap:6px;padding:7px 8px 8px;border-radius:11px;font-size:11.5px;color:var(--text-2)}
.fc-value{white-space:nowrap}
.fc-value b{font-size:17px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.fc-cell .fs-track{height:6px}
.fc-cell.is-top{background:color-mix(in srgb,var(--mk) 15%,transparent)}
.fc-cell.is-top .fc-value::after{content:'✓';margin-left:4px;font-weight:700;color:var(--success)}
/* Apple Salute nelle Impostazioni */
.health-body{display:grid;gap:12px}
.health-state{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600}
.health-state .ui-icon{width:20px;height:20px;color:var(--success)}
.health-actions{display:flex;flex-wrap:wrap;gap:8px}
.health-key{display:grid;gap:8px;padding:12px;border-radius:14px;background:var(--accent-bg)}
.health-key p{margin:0;font-size:13px}
.health-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center}
.health-copy span{grid-column:1/-1;font-size:12px;color:var(--text-3)}
.health-copy code{font-size:12px;overflow-wrap:anywhere;background:var(--surface);border-radius:8px;padding:6px 8px;user-select:all;-webkit-user-select:all}
.health-how summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-weight:600;font-size:14px;list-style:none}
.health-how summary::-webkit-details-marker{display:none}
.health-how[open] summary .ui-icon{transform:rotate(180deg)}
.health-how ol{margin:10px 0 0;padding-left:20px;display:grid;gap:8px;font-size:13px;line-height:1.5;color:var(--text-2)}
.health-fields{margin:6px 0 0;padding-left:16px;display:grid;gap:2px}
.health-fields small{color:var(--text-3)}
