/* FORMA 1.5: grafica "Visual Studio" della Beta 10 sopra le funzioni della 1.4.
   Palette scura più cinematografica, accento lime, superfici con bordi rifiniti, microinterazioni. */
:root {
  --bg: #0b100d; --surface: #141b16; --surface-2: #1d281f; --surface-3: #263227;
  --line: #2c3a2e; --line-2: #3a4a3b; --ink: #f5f7f1; --ink-2: #b4c0b1; --ink-3: #8f9d8e;
  --accent: #d7ff72; --accent-2: #c3ef58; --accent-ink: #152010;
  --r: 20px; --r-sm: 13px;
  --glow: 0 10px 30px rgba(185, 235, 77, 0.10);
}
body { background: radial-gradient(ellipse at 100% 0%, #24361f 0, transparent 40%) no-repeat, var(--bg); background-attachment: fixed; }
main > * { animation: rise .32s cubic-bezier(.2, .7, .2, 1) both; }
main > *:nth-child(2) { animation-delay: .03s; } main > *:nth-child(3) { animation-delay: .06s; } main > *:nth-child(4) { animation-delay: .09s; } main > *:nth-child(n+5) { animation-delay: .12s; }
@keyframes rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* Marchio in alto */
.brandbar { display: flex; align-items: center; gap: 10px; padding: calc(16px + var(--safe-t)) 0 14px; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); }
.brand-mark { width: 36px; height: 36px; border-radius: 12px; background: var(--accent); color: var(--accent-ink); display: grid; place-items: center; font-weight: 900; font-size: 19px; box-shadow: 0 0 22px rgba(215, 255, 114, 0.35); }
.brand-name { font-weight: 850; font-size: 15px; letter-spacing: .22em; }
.brand-sub { flex: 1; text-align: right; color: var(--ink-3); font-size: 13.5px; text-transform: capitalize; }
.avatar { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); border: 1px solid var(--line-2); color: var(--ink-2); flex-shrink: 0; }

/* Hero con l'atleta */
.hero-card.hero { position: relative; overflow: hidden; padding: 22px; border-radius: 28px; background: linear-gradient(135deg, #263a2b 0%, #18251b 62%, #101711 100%); border: 1px solid #425340; box-shadow: 0 20px 45px rgba(0, 0, 0, 0.25); }
.hero-card.hero.live { border-color: rgba(215, 255, 114, 0.55); }
.hero-card.hero.rest { background: linear-gradient(135deg, #1f2b22 0%, #141c16 70%); }
.hero-card.hero.rest .athlete { opacity: .55; filter: saturate(.6); }
.hero-card.hero.rest .bar-lift { animation: none; }
.hero-top { position: relative; min-height: 196px; display: flex; align-items: flex-end; margin: -4px -6px 6px 0; }
.hero-head { position: relative; z-index: 1; max-width: 60%; display: grid; gap: 10px; padding-bottom: 4px; }
.hero-title { font-size: 34px !important; line-height: 1.02; letter-spacing: -0.04em !important; font-weight: 850 !important; margin: 0 !important; overflow-wrap: anywhere; }
.hero-meta { color: #d1dbce; font-size: 14.5px; }
.hero-meta b { color: var(--ink); font-variant-numeric: tabular-nums; }
.hero-time { font-size: 28px; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--ink) !important; }
.hero-card.hero > p { position: relative; z-index: 1; color: #cbd6c8; }
.hero-card.hero .chips, .hero-card.hero .why, .hero-card.hero .btn { position: relative; z-index: 1; }
.hero-card.hero .chip { background: rgba(255, 255, 255, 0.07); border: 1px solid rgba(255, 255, 255, 0.10); color: #dfe7dc; }
.hero-card.hero .why { border-top-color: rgba(255, 255, 255, 0.10); color: #cbd6c8; }
.hero-card.hero .btn.primary { box-shadow: 0 8px 24px rgba(215, 255, 114, 0.22); }
.pill { display: inline-flex; align-items: center; gap: 7px; justify-self: start; padding: 7px 11px; border-radius: 999px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.13); font-size: 11.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: #dbe5d7 !important; }
.dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 10px var(--accent); }
.dot.pulse { animation: pulse 1.6s ease-in-out infinite; }
@keyframes pulse { 50% { transform: scale(1.5); opacity: .55; } }
.hero-art { position: absolute; right: -22px; top: -10px; bottom: -6px; width: 56%; pointer-events: none; }
.hero-art .orbit { position: absolute; border-radius: 50%; border: 1px solid rgba(201, 242, 105, 0.22); }
.hero-art .orbit.a { width: 230px; height: 230px; right: -70px; top: -60px; box-shadow: 0 0 0 24px rgba(201, 242, 105, 0.03), 0 0 0 52px rgba(201, 242, 105, 0.02); }
.hero-art .orbit.b { width: 130px; height: 130px; right: -30px; bottom: -70px; border: 0; background: linear-gradient(145deg, #d2fa75, #729e38); opacity: .85; }
.athlete { position: absolute; right: 0; bottom: 0; width: 100%; height: auto; max-height: 100%; animation: float 5s ease-in-out infinite; }
.bar-lift { animation: lift 2.6s ease-in-out infinite; transform-origin: 130px 104px; }
@keyframes float { 50% { transform: translateY(-5px); } }
@keyframes lift { 50% { transform: translateY(-6px); } }

/* Numeri, settimana, energia */
.card { margin-top: 12px; padding: 18px; border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); }
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin-top: 12px; }
.stat { position: relative; overflow: hidden; padding: 15px 13px; border-radius: 18px; background: #182019; border: 1px solid var(--line); }
.stat::after { content: ""; position: absolute; width: 70px; height: 70px; right: -26px; bottom: -30px; border-radius: 50%; border: 1px solid rgba(215, 255, 114, 0.13); }
.stat b { display: block; font-size: 26px; font-weight: 850; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.stat span { display: block; margin-top: 4px; color: var(--ink-3); font-size: 12.5px; font-weight: 600; line-height: 1.25; }
.week-card .week-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.week-card h2 { font-size: 19px; }
.ring { --p: 0%; width: 86px; height: 86px; flex-shrink: 0; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--accent) var(--p), #2a362b 0); box-shadow: var(--glow); }
.ring-center { width: 70px; height: 70px; border-radius: 50%; background: var(--surface); display: grid; place-items: center; align-content: center; }
.ring-center b { font-size: 20px; font-weight: 850; font-variant-numeric: tabular-nums; }
.ring-center small { font-size: 10.5px; color: var(--ink-3); font-weight: 700; }
.week li { border-radius: 14px; background: #182019; }
.week li.done { background: var(--accent); border-color: var(--accent); color: #2a3a1c; }
.week li.done b, .week li.done i { color: var(--accent-ink); }
.week li.today:not(.done) { border-color: var(--accent); color: var(--accent); }
.card.energy { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.energy-copy { flex: 1 1 160px; display: grid; gap: 4px; }
.energy-copy strong { font-size: 17px; }
.energy-copy small { color: var(--ink-2); font-size: 13.5px; }
.card.energy .energy-pick { display: flex; gap: 7px; flex: 0 0 auto; }
.card.energy .energy-pick button { width: 64px; min-height: 64px; display: grid; place-items: center; align-content: center; gap: 4px; border-radius: 16px; background: var(--surface-2); border: 1px solid var(--line-2); color: var(--ink-2); transition: transform .15s, background .15s; }
.card.energy .energy-pick button small { font-size: 12px; font-weight: 700; }
.card.energy .energy-pick button:active { transform: scale(.95); }
.card.energy .energy-pick button.on { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); box-shadow: 0 0 18px rgba(215, 255, 114, 0.3); }

/* Scorciatoie e piano */
.quick { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 12px; }
.quick-tile { display: grid; gap: 6px; align-content: start; text-align: left; padding: 16px; min-height: 118px; border-radius: 20px; background: linear-gradient(160deg, #1c271e, #141b16); border: 1px solid var(--line); color: var(--ink); text-decoration: none; transition: transform .15s, border-color .15s; }
.quick-tile:active { transform: scale(.98); }
.quick-tile:hover { border-color: var(--line-2); }
.quick-icon { width: 40px; height: 40px; border-radius: 13px; display: grid; place-items: center; background: rgba(215, 255, 114, 0.12); color: var(--accent); margin-bottom: 4px; }
.quick-tile strong { font-size: 15.5px; }
.quick-tile small { color: var(--ink-3); font-size: 13px; line-height: 1.3; }
.day-list { display: grid; gap: 9px; }
.day-card { display: flex; align-items: center; gap: 13px; width: 100%; text-align: left; padding: 12px; border-radius: 19px; background: var(--surface); border: 1px solid var(--line); color: var(--ink); transition: transform .15s, border-color .15s; }
.day-card:active { transform: scale(.99); }
.day-card.next { border-color: rgba(215, 255, 114, 0.45); background: linear-gradient(135deg, #1e2b1f, var(--surface)); }
.day-icon { width: 52px; height: 52px; flex-shrink: 0; border-radius: 15px; display: grid; place-items: center; background: linear-gradient(145deg, #344a34, #1d2b20); color: var(--accent); font-size: 20px; font-weight: 900; }
.day-meta { flex: 1; min-width: 0; display: grid; gap: 3px; }
.day-meta strong { font-size: 15.5px; }
.day-meta small { color: var(--ink-3); font-size: 13px; }
.tag { flex-shrink: 0; font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--accent-ink); background: var(--accent); padding: 6px 10px; border-radius: 999px; }
.tag.soft { color: var(--accent); background: rgba(215, 255, 114, 0.12); }

/* Superfici del resto dell'app */
.btn { border-radius: 15px; transition: transform .12s, background .15s, box-shadow .15s; }
.btn.primary { box-shadow: 0 6px 18px rgba(185, 235, 77, 0.12); }
.row, .coach-item, .exercise, .plan-day, .sum-ex, .records li { border-radius: 18px; }
.coach-item { background: linear-gradient(160deg, #1a241b, var(--surface)); }
.block > h2 { font-size: 19px; letter-spacing: -0.03em; font-weight: 800; }
.bar-title h1 { font-size: 30px; letter-spacing: -0.04em; font-weight: 850; }

/* Barra in basso con la pillola attiva */
.tabbar { background: rgba(11, 16, 13, 0.9); border-top-color: #2f3b30; }
.tabbar ul { padding: 6px 8px; gap: 4px; }
.tabbar a { height: calc(var(--tab-h) - 12px); border-radius: 14px; transition: background .15s, color .15s; }
.tabbar a.on { background: #253022; }

@media (min-width: 640px) {
  .tabbar { left: 50%; right: auto; bottom: 16px; width: min(560px, calc(100% - 24px)); transform: translateX(-50%); border: 1px solid #2f3b30; border-radius: 22px; }
}
@media (max-width: 360px) {
  .hero-title { font-size: 28px !important; }
  .card.energy .energy-pick button { width: 58px; }
}
@media (prefers-reduced-motion: reduce) {
  main > *, .athlete, .bar-lift, .dot.pulse { animation: none !important; }
}

/* Focus */
.kicker { font-size: 11.5px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 6px; display: flex; align-items: center; gap: 8px; }
.kicker::before { content: ""; width: 18px; height: 2px; border-radius: 2px; background: var(--accent); }
.focus-line { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--ink); font-size: 14.5px; }
.focus-pick { display: flex; gap: 7px; margin-top: 14px; flex-wrap: wrap; }
.focus-pick button { min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--surface-2); border: 1px solid var(--line-2); color: var(--ink-2); font-weight: 700; font-size: 14px; }
.focus-pick button.on { background: rgba(215, 255, 114, 0.14); border-color: var(--accent); color: var(--accent); }
.week[aria-label] { margin-top: 12px; }
/* Correzioni hero: niente sovrapposizioni con il testo */
.hero-art { bottom: 0; overflow: hidden; border-radius: 0 24px 0 0; }
.hero-art .orbit.b { width: 96px; height: 96px; right: -18px; bottom: -40px; }
.hero-head { max-width: 62%; }
.pill { white-space: nowrap; font-size: 10.5px; letter-spacing: .05em; padding: 6px 10px; }
.pill { background: rgba(16, 24, 18, 0.82); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); position: relative; z-index: 2; }

/* Riquadri in Progressi */
.metric-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 16px; }
.metric { display: grid; gap: 4px; padding: 16px; border-radius: 20px; background: var(--surface); border: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.metric span { font-size: 11.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.metric b { font-size: 27px; font-weight: 850; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.metric b.word { font-size: 21px; padding: 3px 0; }
.metric small { color: var(--ink-3); font-size: 12.5px; }
a.metric:active { transform: scale(.98); }

.greeting { font-size: 30px; font-weight: 850; letter-spacing: -0.04em; margin: 2px 0 14px; }
.rest-screen .rest-actions { grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.35fr); gap: 7px; }
.rest-screen .rest-actions .btn { padding: 0 6px; font-size: 15.5px; white-space: nowrap; }


/* FORMA 1.5 · cinematic interface refinements */
:root {
  --bg: #080b09;
  --surface: #111613;
  --surface-2: #191f1b;
  --surface-3: #222b25;
  --line: #28322b;
  --line-2: #3a473d;
  --ink: #f5f7f2;
  --ink-2: #b5c0b7;
  --ink-3: #829087;
  --accent: #d6ff63;
  --accent-2: #c0ec4b;
  --accent-ink: #10170a;
  --accent-wash: rgba(214,255,99,.1);
  --r: 22px;
}
html { background: #080b09; }
body {
  background:
    radial-gradient(ellipse 85% 34% at 50% -9%, rgba(147,185,91,.16), transparent 75%),
    radial-gradient(ellipse 70% 32% at 100% 52%, rgba(50,76,50,.10), transparent 78%),
    var(--bg);
  background-attachment: fixed;
}
.app { max-width: 620px; }
main { padding-left: clamp(16px,4.5vw,24px); padding-right: clamp(16px,4.5vw,24px); }
.card, .metric, .coach-item, .exercise, .plan-day, .sum-ex, .records li {
  border-color: rgba(172,196,173,.13);
  box-shadow: 0 12px 34px rgba(0,0,0,.17), inset 0 1px rgba(255,255,255,.018);
}
.card { background: linear-gradient(145deg, rgba(21,28,23,.96), rgba(15,20,17,.98)); }
.bar-title h1, .greeting { letter-spacing: -.055em; }
.bar-title h1 { font-size: clamp(29px,8vw,36px); }
.brandbar { gap: 13px; padding-top: calc(18px + var(--safe-t)); padding-bottom: 17px; }
.brand-mark { border-radius: 11px; box-shadow: 0 0 28px rgba(214,255,99,.25); }
.brand-name { letter-spacing: .24em; }
.brand-sub { font-size: 12px; letter-spacing: .04em; }
.avatar { width: 46px; height: 46px; border-color: rgba(214,255,99,.28); background: #151c17; }
.hero-card.hero {
  border-color: rgba(214,255,99,.24);
  background:
    radial-gradient(ellipse at 86% 18%, rgba(214,255,99,.12), transparent 38%),
    linear-gradient(135deg,#202b20 0%,#121914 62%,#0c100d 100%);
  box-shadow: 0 24px 54px rgba(0,0,0,.32), inset 0 1px rgba(255,255,255,.06);
}
.hero-title { max-width: 10ch; font-size: clamp(30px,8vw,38px) !important; }
.hero-head { max-width: 68%; }
.hero-art { display: none !important; }
.athlete, .bar-lift { display: none !important; animation: none !important; }
.hero-card.hero { min-height: 238px; display: flex; flex-direction: column; justify-content: center; }
.hero-top { min-height: 148px; }
.hero-card.hero:after {
  content: ""; position: absolute; right: -42px; top: -72px; width: 220px; height: 220px;
  border: 1px solid rgba(214,255,99,.18); border-radius: 50%;
  box-shadow: 0 0 0 22px rgba(214,255,99,.025), 0 0 0 48px rgba(214,255,99,.018);
  pointer-events: none;
}
.stats { gap: 10px; }
.stat { min-width: 0; padding: 15px 12px; background: linear-gradient(145deg,#1b241d,#151b17); }
.stat b { font-size: clamp(23px,7vw,29px); line-height: 1.1; }
.stat span { margin-top: 7px; overflow-wrap: anywhere; }
.week-card { overflow: hidden; }
.week-top { min-width: 0; }
.week-top > div:first-child { min-width: 0; }
.ring { width: 88px; height: 88px; background: conic-gradient(var(--accent) var(--p), #27312a 0); }
.ring-center { width: 70px; height: 70px; }
.focus-line { line-height: 1.55; }
.focus-pick { gap: 8px; }
.focus-pick button {
  min-height: 46px; padding: 0 17px; border-radius: 14px;
  background: #1b231d; border-color: #354137; color: #c1cbbf;
  transition: transform .16s ease, background .18s ease, border-color .18s ease;
}
.focus-pick button:active { transform: scale(.97); }
.focus-pick button.on { background: var(--accent); border-color: var(--accent); color: #11170b; box-shadow: 0 5px 20px rgba(214,255,99,.17); }
.quick { gap: 10px; }
.quick-tile { min-width: 0; min-height: 130px; padding: 16px 14px; background: linear-gradient(150deg,#1a241d,#111613); }
.quick-tile strong, .quick-tile small { overflow-wrap: anywhere; }
.quick-icon { background: rgba(214,255,99,.11); color: var(--accent); }
.metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.metric {
  min-width: 0; min-height: 132px; display: flex; flex-direction: column; align-items: flex-start;
  justify-content: center; gap: 7px; padding: 16px;
  background: linear-gradient(145deg,#171e19,#111613);
}
.metric span, .metric b, .metric small { display: block; width: 100%; line-height: 1.25; overflow-wrap: anywhere; }
.metric span { order: 0; font-size: 10.5px; letter-spacing: .12em; }
.metric b { order: 1; font-size: clamp(24px,7vw,30px); }
.metric small { order: 2; margin-top: 1px; font-size: 12px; }
.btn, .icon-btn, .focus-pick button, .day-card, .quick-tile { -webkit-tap-highlight-color: transparent; }
.btn.small { min-height: 44px; }
.tabbar { background: rgba(8,11,9,.88); border-top-color: rgba(165,185,165,.15); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
.tabbar a { min-height: 48px; }
.tabbar a.on { color: var(--accent); background: rgba(214,255,99,.10); }
.search, .filter-row, .day-chip, .check { min-width: 0; max-width: 100%; }
.search { width: 100%; }
.filter-row { display: flex; flex-wrap: wrap; }
.filter-row > * { max-width: 100%; }
.day-chip, .check { flex: 0 1 auto; }
main, main > *, .block, .card, .row, .exercise, .plan-day { min-width: 0; }
img, svg { max-width: 100%; }
@media (max-width: 380px) {
  :root { --gap: 14px; }
  main { padding-left: 14px; padding-right: 14px; }
  .stats { gap: 7px; }
  .stat { padding: 13px 9px; }
  .metric-grid { gap: 8px; }
  .metric { min-height: 124px; padding: 13px; }
  .quick { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8px; }
  .quick-tile { padding: 14px 12px; }
  .card.energy .energy-pick { max-width: 100%; }
  .card.energy .energy-pick button { width: 56px; }
  .rest-screen .rest-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rest-screen .rest-actions .btn { white-space: normal; }
}
@media (max-width: 340px) {
  .focus-pick button { flex: 1 1 42%; padding: 0 9px; }
  .week-card .week-top { align-items: flex-start; }
  .ring { width: 76px; height: 76px; }
  .ring-center { width: 60px; height: 60px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}


/* FORMA 1.6 · nuove schermate e componenti */
.field select {
  width:100%; min-width:0; height:48px; padding:0 42px 0 13px;
  appearance:none; -webkit-appearance:none; border-radius:13px;
  border:1px solid var(--line-2); color:var(--ink);
  background-color:#111713;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23d6ff63' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center;
  font-size:15px; transition:border-color .16s, box-shadow .16s;
}
.field select:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(214,255,99,.10); }
.field select option, .field select optgroup { background:#111713; color:var(--ink); }
.calendar { overflow:hidden; }
.calendar .week {
  display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px;
  margin:6px 0 0; padding:0; list-style:none;
}
.calendar .week li {
  min-width:0; min-height:56px; padding:7px 2px 5px;
  display:grid; justify-items:center; align-content:center; gap:3px;
  border-radius:12px; background:#151c17; border:1px solid rgba(172,196,173,.10);
  font-size:11px; line-height:1.15;
}
.calendar .week li span { color:var(--ink-3); font-size:10px; font-weight:700; }
.calendar .week li b { font-size:14px; font-variant-numeric:tabular-nums; }
.calendar .week li.done { background:rgba(214,255,99,.13); border-color:rgba(214,255,99,.4); }
.calendar .week li.done i { color:var(--accent); }
.calendar .week li.today:not(.done) { border-color:var(--accent); color:var(--accent); }
.calendar .week li.planned:not(.done) { border-style:dashed; border-color:rgba(214,255,99,.42); }
.compare-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; align-items:start; }
.compare-photos figure { min-width:0; overflow:hidden; border:1px solid rgba(172,196,173,.16); border-radius:16px; background:#0c100d; }
.compare-photos img { width:100%; height:auto; display:block; aspect-ratio:3/4; object-fit:cover; border-radius:inherit; }
.compare-photos figcaption { padding:8px 10px 10px; margin:0; }
.records { gap:9px; }
.records li {
  min-width:0; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px 12px;
  padding:14px 15px; background:linear-gradient(145deg,rgba(214,255,99,.09),rgba(19,25,21,.96));
  border:1px solid rgba(214,255,99,.12);
}
.records li strong { min-width:0; font-size:14.5px; line-height:1.35; overflow-wrap:anywhere; }
.records li span { max-width:48%; text-align:right; font-size:12.5px; line-height:1.35; overflow-wrap:anywhere; }
.why-line.warn {
  padding:12px 13px; border-radius:14px; color:#ffe4ad;
  background:linear-gradient(110deg,rgba(255,190,82,.13),rgba(255,190,82,.045));
  border:1px solid rgba(255,190,82,.25); font-size:13.5px; line-height:1.45;
}
.why-line.warn .ic { color:#ffc664; flex:0 0 auto; }
.filter-row { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; }
.filter-row > .select { min-width:0; }
.filter-row > .select:nth-child(3) { grid-column:1/-1; }
.filters .search { width:100%; min-width:0; }
.demo { gap:10px; }
.demo figure { min-width:0; overflow:hidden; border-radius:18px; border:1px solid var(--line); background:#111713; }
.demo figure img { display:block; width:100%; height:auto; }
.stack { gap:9px; }
.stack > .btn { min-height:48px; white-space:normal; line-height:1.25; }
#schede-salvate .row { min-width:0; gap:8px; }
#schede-salvate .row-main { min-width:0; flex:1 1 150px; }
#schede-salvate .row-main strong, #schede-salvate .row-main small { overflow-wrap:anywhere; }
#schede-salvate .row .btn { min-height:44px; }
#schede-salvate .row > .icon-btn { width:44px; height:44px; }
#schede-salvate .table .records { margin-top:12px; }
@media(max-width:380px) {
  .calendar .week { gap:3px; }
  .calendar .week li { min-height:50px; border-radius:10px; }
  .compare-photos { gap:7px; }
  .records li { grid-template-columns:minmax(0,1fr); gap:4px; }
  .records li span { max-width:none; text-align:left; }
  #schede-salvate .row { flex-wrap:wrap; }
  #schede-salvate .row-main { flex-basis:calc(100% - 56px); }
  #schede-salvate .row .btn { flex:1; }
}


/* FORMA 1.9 · ultimi ritocchi touch e contrasto */
.calendar .week li.done {
  background:var(--accent);
  border-color:var(--accent);
  color:var(--accent-ink);
}
.calendar .week li.done span,
.calendar .week li.done b,
.calendar .week li.done i { color:var(--accent-ink); }
button, .seg-btn, .btn, .link, summary { min-height:44px; }
.btn.small { min-height:44px; }
.link { padding:8px 0; }
.link.small { min-height:44px; padding:8px 0; }
.note .link, .hero-card .link, .coach-item .link { min-height:44px; padding:8px 0; }
.seg { align-items:stretch; }
.seg-btn { min-height:44px; padding:6px 10px; line-height:1.2; }
details > summary {
  min-height:44px; display:flex; align-items:center; padding:8px 4px;
  line-height:1.35; border-radius:10px;
}
details.table summary, details.more summary, .cues-box summary { min-height:44px; padding:8px 4px; }
.routine > summary { min-height:52px; }
.welcome { display:grid; gap:18px; padding-top:calc(28px + var(--safe-t)); }
.welcome > .brand { gap:11px; margin-bottom:4px; }
.welcome > h1 {
  max-width:14ch; font-size:clamp(31px,9vw,40px); line-height:1.02;
  letter-spacing:-.055em; font-weight:850;
}
.welcome-points {
  list-style:none; counter-reset:welcome-point; display:grid; gap:9px;
  margin:2px 0; padding:0;
}
.welcome-points li {
  counter-increment:welcome-point; position:relative; display:grid; gap:5px;
  min-width:0; padding:15px 14px 15px 54px; border-radius:17px;
  background:linear-gradient(145deg,rgba(24,32,26,.96),rgba(15,20,17,.98));
  border:1px solid rgba(172,196,173,.13);
}
.welcome-points li::before {
  content:"0" counter(welcome-point); position:absolute; left:14px; top:15px;
  display:grid; place-items:center; width:28px; height:28px; border-radius:9px;
  background:rgba(214,255,99,.12); color:var(--accent);
  font-size:11px; font-weight:850; letter-spacing:.04em;
}
.welcome-points strong { font-size:14.5px; line-height:1.35; }
.welcome-points p { color:var(--ink-2); font-size:13px; line-height:1.45; }
.welcome > .btn.primary { margin-top:2px; }
.welcome .btn.file { min-height:48px; }
.welcome .fine { line-height:1.5; }
@media(max-width:360px) {
  .seg { gap:2px; padding:3px; }
  .seg-btn { padding-inline:5px; font-size:12.5px; white-space:normal; }
  .welcome { gap:14px; }
  .welcome-points li { padding-left:50px; }
}

/* FORMA premium · rings, food, workout, preferences */
:root{--bg:#080b09;--surface:#111713;--surface-2:#19211b;--surface-3:#222d24;--line:#29352c;--line-2:#3a4a3d;--ink:#f7f9f4;--ink-2:#b8c4b9;--ink-3:#849287;--accent:#d6ff63;--accent-2:#bded45;--accent-ink:#11170b;--glow:0 0 24px #d6ff6324,0 12px 30px #0004}
body{background:radial-gradient(ellipse at 8% -8%,#ace5401f,transparent 34%),radial-gradient(ellipse at 100% 38%,#3f68371f,transparent 36%),var(--bg)}
.hero-card.hero{background:radial-gradient(ellipse at 100% 0%,#d6ff6326,transparent 48%),linear-gradient(140deg,#202c21,#131a15 58%,#0d120f);border-color:#d6ff6333;box-shadow:0 22px 52px #0006,inset 0 1px #ffffff0b}
.stat,.metric,.card,.row,.coach-item,.exercise,.plan-day{box-shadow:inset 0 1px #ffffff06,0 10px 26px #0003}
.stat b,.metric b{letter-spacing:-.055em;font-variant-numeric:tabular-nums}.block>h2,.card>h2{letter-spacing:-.035em}.btn.primary{box-shadow:0 6px 24px #d6ff6333,inset 0 1px #ffffff33}
/* Anelli in riga */
.rings-card{overflow:hidden;position:relative;background:linear-gradient(145deg,#151d17,#0f1411)}.rings-card:after{content:"";position:absolute;width:180px;height:180px;right:-92px;top:-105px;border:1px solid #d6ff6324;border-radius:50%;pointer-events:none}
.rings-card h2,.rings-card .meta-line{position:relative;z-index:1}.rings-card .rings{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:clamp(2px,1.4vw,8px);margin:14px 0 8px;padding:0;list-style:none}
.rings-card .rings>li{min-width:0;flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--ink-2);text-align:center;font-size:clamp(9px,2.7vw,11px);font-weight:700;line-height:1.15}
.rings-card .ring{width:clamp(44px,16.6vw,66px);height:clamp(44px,16.6vw,66px);background:conic-gradient(var(--accent) var(--p),#2a352d 0);box-shadow:0 0 0 1px #d6ff6314,0 5px 18px #0005}
.rings-card .ring-center{width:80%;height:80%;background:linear-gradient(145deg,#18201a,#0e130f)}.rings-card .ring-center b{font-size:clamp(11px,3.5vw,16px);line-height:1;font-weight:900;letter-spacing:-.04em}
.rings-card .ring-center small{max-width:100%;font-size:clamp(7px,2.1vw,9px);line-height:1.05;white-space:nowrap}.rings-card .rings li.closed{color:var(--accent)}
.rings-card .rings li.closed .ring{background:conic-gradient(var(--accent) 100%,#2a352d 0);box-shadow:0 0 0 1px #d6ff6342,0 0 20px #d6ff6333}.rings-card .rings li.closed .ring-center{background:radial-gradient(circle at 40% 20%,#29381d,#121912)}
.tabbar{background:#080b09ed;border-color:#b9cdb626}.tabbar a{color:#919e93}.tabbar a.on{color:var(--accent);background:linear-gradient(145deg,#d6ff6329,#d6ff6312);box-shadow:inset 0 1px #d6ff631f}
/* Nutrizione */
.quick-food{padding:16px;border-radius:20px;background:radial-gradient(ellipse at 100% 0%,#d6ff6314,transparent 48%),linear-gradient(145deg,#171f19,#111713);border:1px solid #d6ff6326;box-shadow:inset 0 1px #ffffff09,0 14px 32px #0003}
.quick-food h2{margin:0 0 10px;font-size:19px;letter-spacing:-.035em}.quick-food textarea{display:block;width:100%;min-height:86px;resize:vertical;padding:13px 14px;color:var(--ink);background:#0c110e;border:1px solid #354238;border-radius:15px;font:inherit;line-height:1.45}
.quick-food textarea::placeholder{color:#77847a}.quick-food textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #d6ff631c}.quick-food .two{gap:8px;align-items:stretch}.quick-food .two>*{min-width:0}
.quick-food .added{padding:11px 12px;border:1px solid #d6ff6333;border-radius:13px;background:#d6ff6314;color:#e5f5c4;line-height:1.45}.quick-food .added .link,#toast .toast-undo{color:var(--accent);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.unknown-food{align-items:flex-start;padding:13px;border-color:#ffc2643b;background:linear-gradient(130deg,#ffbe5217,#141915)}.unknown-food>.ic{color:#ffc96f;flex:0 0 auto;margin-top:2px}.unknown-food p{line-height:1.45}.unknown-food .stack{margin-top:8px}
.off-results{display:grid;gap:8px}.off-results>.row{padding:12px;background:linear-gradient(145deg,#19211b,#111713);border-color:#a9bfab22}.off-results .row-main{min-width:0}.off-results .row-main strong,.off-results .row-main small{overflow-wrap:anywhere}
.protein-ideas{border-color:#d6ff6333;background:radial-gradient(ellipse at 100% 0%,#d6ff631c,transparent 55%),linear-gradient(145deg,#172018,#101511)}.protein-ideas h2{color:var(--accent);font-size:clamp(21px,6vw,27px);letter-spacing:-.045em}.protein-ideas .row{background:#090d0a75}
button[data-act="meal-repeat"]{width:100%;justify-content:flex-start;text-align:left;line-height:1.35;background:linear-gradient(115deg,#d6ff631f,#d6ff630b);border-color:#d6ff6338}
input.grams-edit{min-height:44px;width:4.5em;padding:0 8px;border-radius:11px;color:var(--ink);background:#0c110e;border:1px solid #354238;font-family:inherit;font-size:14px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}input.grams-edit:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #d6ff631a}
/* Seduta */
a.music-link{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 15px;border:1px solid #d6ff633d;border-radius:14px;color:var(--accent);background:linear-gradient(145deg,#d6ff631f,#d6ff630b);font-weight:800;text-decoration:none}a.music-link:active{transform:scale(.97)}
.time-coach{padding:14px;border-color:#d6ff6333;background:radial-gradient(ellipse at 0 0,#d6ff631a,transparent 65%),linear-gradient(145deg,#182119,#111713)}.time-coach>.ic{color:var(--accent);flex:0 0 auto}.time-coach p{line-height:1.45}.time-coach .stack{margin-top:8px}
.warmup{margin:10px 0;padding:0 12px;border:1px solid #d6ff6324;border-radius:16px;background:linear-gradient(145deg,#d6ff630e,#111713cc)}.warmup>summary{color:var(--ink);font-weight:800}
.warmup-sets{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:7px;margin:0;padding:0;list-style:none}.warmup-sets li{min-width:0;padding:10px;border-radius:12px;background:#0d130f;border:1px solid #b7ccb91a}
.warmup-sets li strong{display:block;color:var(--accent);font-size:14px;font-variant-numeric:tabular-nums}.warmup-sets li small{display:block;margin-top:3px;color:var(--ink-3);font-size:11px;line-height:1.3}.warmup>.meta-line{margin:9px 0 10px}
.record-hint{padding:10px 12px;border-radius:13px;color:#eff8d8;background:linear-gradient(105deg,#d6ff6321,#d6ff6308);border:1px solid #d6ff6338;font-weight:700;line-height:1.4}.record-hint .ic{color:var(--accent)}.g-actions{gap:7px}.g-actions>.btn{min-height:44px;padding-inline:11px}.g-actions [data-act="busy"]{color:#d8e2d8;border-color:#b0c2b233;background:#171e19}
/* Impostazioni e annulla */
.field select{background-color:#0c110e;border-color:#344137}.toggle{min-height:62px;padding:12px 13px;border-radius:15px;background:linear-gradient(145deg,#171f19,#111713);border:1px solid #b1c6b41f}
.toggle>span{min-width:0}.toggle strong{font-size:14px}.toggle small{display:block;margin-top:4px;color:var(--ink-3);line-height:1.4}
.toggle input[role="switch"]{appearance:none;-webkit-appearance:none;position:relative;flex:0 0 48px;width:48px;height:28px;border:1px solid #526055;border-radius:999px;background:#303a32;transition:background .2s,border-color .2s}
.toggle input[role="switch"]:after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#dce4dc;box-shadow:0 2px 5px #0008;transition:transform .2s}
.toggle input[role="switch"]:checked{background:var(--accent);border-color:var(--accent)}.toggle input[role="switch"]:checked:after{transform:translateX(20px);background:#17200f}
#toast{box-shadow:0 14px 38px #0007}#toast .toast-undo{min-height:44px;margin-left:5px;padding:7px 9px;border-radius:9px}
@media(max-width:380px){.rings-card{padding:14px}.rings-card .rings{gap:2px}.rings-card .ring{width:clamp(42px,15.7vw,58px);height:clamp(42px,15.7vw,58px)}.rings-card .ring-center b{font-size:clamp(10px,3.1vw,14px)}.rings-card .ring-center small{font-size:7px}.rings-card .rings>li{font-size:9px}.quick-food{padding:13px}}
@media(max-width:340px){.rings-card .ring{width:42px;height:42px}.rings-card .ring-center b{font-size:10px}}


/* =========================================================
   FORMA 2.0 · FUTURE HUD
   Tipografia tecnica locale: mantiene il caricamento rapido e offline.
   Contrasto e leggibilità prima della decorazione; nessun moto qui.
   ========================================================= */
:root {
  --bg:#050807;
  --surface:rgba(14,19,17,.93);
  --surface-2:rgba(20,28,24,.94);
  --surface-3:#202b25;
  --line:rgba(167,193,177,.17);
  --line-2:rgba(171,211,188,.28);
  --ink:#f5faf6;
  --ink-2:#bfccc4;
  --ink-3:#93a39a;
  --accent:#d6ff63;
  --accent-2:#baf443;
  --accent-ink:#12190a;
  --hud-data:#56dcff;
  --hud-alert:#ffbf67;
  --display:ui-monospace,SFMono-Regular,Menlo,Monaco,"Cascadia Mono",monospace;
  --glow:0 0 22px rgba(214,255,99,.16);
}
html { background:var(--bg); }
body {
  color:var(--ink);
  background-color:var(--bg);
  background-image:
    linear-gradient(rgba(150,190,166,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(150,190,166,.045) 1px,transparent 1px),
    radial-gradient(ellipse at 50% -8%,rgba(81,220,255,.105),transparent 38%),
    radial-gradient(ellipse at 6% 18%,rgba(181,244,67,.085),transparent 30%);
  background-size:32px 32px,32px 32px,auto,auto;
  background-attachment:fixed;
}
h1,h2,h3 { color:var(--ink); }
.kicker,.label,.meta-label { letter-spacing:.13em; text-transform:uppercase; }
.kicker { color:#b4c6ba; }
.kicker::before { background:var(--hud-data); box-shadow:0 0 10px rgba(86,220,255,.55); }
.stat b,.metric b,.facts dd,.timed-big,.rest-big,.step-input,.ring-center b {
  font-family:var(--display);
  font-variant-numeric:tabular-nums;
}
.stat b,.metric b,.facts dd { color:var(--hud-data); text-shadow:0 0 18px rgba(86,220,255,.15); }
button,.btn,a,.icon-btn,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid var(--hud-data);outline-offset:3px; }

/* Cornici tecniche discrete, collocate fuori dai dati */
.hero-card.hero,.guided-ex,.finish-screen,.rest-screen,.rings-card {
  border:1px solid rgba(157,190,171,.19);
  background-color:rgba(10,15,12,.92);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
  box-shadow:inset 0 1px rgba(255,255,255,.035),0 0 28px rgba(0,0,0,.14);
}
.hero-card.hero {
  border-color:rgba(86,220,255,.26);
  background-image:
    linear-gradient(var(--hud-data),var(--hud-data)),linear-gradient(var(--hud-data),var(--hud-data)),
    linear-gradient(var(--hud-data),var(--hud-data)),linear-gradient(var(--hud-data),var(--hud-data)),
    radial-gradient(ellipse at 100% 0%,rgba(86,220,255,.13),transparent 48%),
    radial-gradient(ellipse at 0% 100%,rgba(214,255,99,.10),transparent 52%),
    linear-gradient(145deg,#121a16,#080c0a);
  background-size:16px 1px,1px 16px,16px 1px,1px 16px,auto,auto,auto;
  background-position:top left,top left,bottom right,bottom right,center,center,center;
  background-repeat:no-repeat;
  box-shadow:inset 0 1px rgba(255,255,255,.045),0 0 34px rgba(86,220,255,.055);
}
.hero-card.hero.live { border-color:var(--accent); }
.hero-card.hero .hero-meta,.hero-card.hero>p { color:#d0dcd4; }
.hero-card.hero .hero-time { font:800 30px/1 var(--display);color:var(--accent)!important; }
.hero-card.hero .hero-title { text-shadow:0 0 26px rgba(255,255,255,.09); }
.hero-card.hero .pill { color:#e9f8ef!important;border-color:rgba(86,220,255,.27);background:rgba(5,10,8,.74); }
.hero-card.hero .dot { background:var(--accent);box-shadow:0 0 12px var(--accent); }
.hero-card.hero .hero-art { opacity:.4; }
.guided-ex,.finish-screen,.rest-screen {
  position:relative;
  border-color:rgba(86,220,255,.24);
  background:
    radial-gradient(ellipse at 50% 0%,rgba(86,220,255,.075),transparent 46%),
    linear-gradient(145deg,rgba(17,24,20,.98),rgba(7,11,9,.98));
  box-shadow:inset 0 1px rgba(255,255,255,.04),0 0 30px rgba(86,220,255,.045);
}
.guided-ex::after,.finish-screen::after,.rest-screen::after {
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:.72;
  background:
    linear-gradient(var(--hud-data),var(--hud-data)) left top/18px 1px no-repeat,
    linear-gradient(var(--hud-data),var(--hud-data)) left top/1px 18px no-repeat,
    linear-gradient(var(--hud-data),var(--hud-data)) right bottom/18px 1px no-repeat,
    linear-gradient(var(--hud-data),var(--hud-data)) right bottom/1px 18px no-repeat;
}

/* Seduta guidata · serie in corso come pannello-mirino */
.ex-nav { display:flex;gap:6px;align-items:center; }
.ex-pill {
  flex:1 1 0;min-width:0;width:auto;height:8px;min-height:8px;padding:0;
  overflow:hidden;border:0;border-radius:99px;background:#29352f;color:transparent;
  font-size:0;box-shadow:inset 0 0 0 1px rgba(197,222,207,.10);
}
.ex-pill.on { background:var(--hud-data);box-shadow:0 0 12px rgba(86,220,255,.6); }
.ex-pill.done { background:var(--accent);box-shadow:0 0 10px rgba(214,255,99,.32); }
.g-set {
  position:relative;margin-top:12px;padding:16px;
  border:1px solid rgba(86,220,255,.24);border-radius:18px;
  background:
    linear-gradient(var(--hud-data),var(--hud-data)) left top/17px 1px no-repeat,
    linear-gradient(var(--hud-data),var(--hud-data)) left top/1px 17px no-repeat,
    linear-gradient(var(--hud-data),var(--hud-data)) right bottom/17px 1px no-repeat,
    linear-gradient(var(--hud-data),var(--hud-data)) right bottom/1px 17px no-repeat,
    radial-gradient(ellipse at 50% 10%,rgba(86,220,255,.09),transparent 58%),
    rgba(5,10,8,.82);
  box-shadow:inset 0 0 24px rgba(86,220,255,.035),0 0 22px rgba(86,220,255,.045);
}
.g-set-head { min-height:38px;align-items:center; }
.g-set-head>strong { color:var(--hud-data);font:700 13px/1.2 var(--display);letter-spacing:.055em;text-transform:uppercase; }
.g-set-head .dots i,.g-set-head .dots span { border-radius:2px; }
.stepper { gap:10px;align-items:stretch; }
.stepper .step {
  width:56px;height:auto;min-height:56px;flex:0 0 56px;
  border:1px solid rgba(86,220,255,.32);border-radius:13px;
  color:var(--hud-data);background:rgba(86,220,255,.075);
}
.stepper .step:active { background:rgba(86,220,255,.18); }
.step-val {
  min-width:0;min-height:64px;flex:1;
  padding:7px 10px;border:1px solid rgba(168,197,179,.17);border-radius:13px;
  background:rgba(0,0,0,.34);
}
.step-input {
  width:100%;min-width:0;color:var(--ink);font-size:clamp(30px,9vw,44px);
  font-weight:800;line-height:1;text-align:center;letter-spacing:-.07em;
}
.step-val>span { color:var(--ink-2);font:700 11px/1 var(--display);letter-spacing:.1em;text-transform:uppercase; }
.step-input:focus { outline:0; }
.step-val:focus-within { border-color:var(--hud-data);box-shadow:0 0 0 2px rgba(86,220,255,.12); }
.g-set [data-act="g-done"],.g-set [data-act="timed-start"] {
  position:relative;z-index:1;width:100%;min-height:64px;margin-top:14px;
  border-radius:14px;color:var(--accent-ink);
  background:linear-gradient(115deg,#d6ff63,#bded45);
  box-shadow:0 0 24px rgba(214,255,99,.24),inset 0 1px rgba(255,255,255,.42);
  font-size:18px;font-weight:900;letter-spacing:.015em;
}
.g-set [data-act="g-done"]:active,.g-set [data-act="timed-start"]:active { filter:brightness(1.08); }
.g-actions { display:flex;flex-wrap:wrap;gap:8px; }
.g-actions>.btn { min-height:44px; }
.record-hint,.why-line.warn { border-color:rgba(255,191,103,.32);background:rgba(255,191,103,.09);color:#ffdfad; }
.record-hint .ic,.why-line.warn .ic { color:var(--hud-alert); }

/* Recupero · quadrante di lettura, barra sottile come telemetria */
.rest-screen { display:flex;flex-direction:column;align-items:stretch;text-align:center;overflow:hidden; }
.rest-label-big { margin:4px 0 0;color:var(--hud-data);font:700 12px/1.2 var(--display);letter-spacing:.2em;text-transform:uppercase; }
.rest-big {
  position:relative;z-index:1;width:min(72vw,236px);height:min(72vw,236px);min-height:190px;
  margin:18px auto 14px;display:grid;place-items:center;flex:0 0 auto;
  border:1px solid rgba(86,220,255,.46);border-radius:50%;
  color:var(--accent);font-size:clamp(48px,15vw,72px);font-weight:800;letter-spacing:-.08em;line-height:1;
  background:
    radial-gradient(circle,rgba(86,220,255,.09) 0 1px,transparent 2px),
    radial-gradient(circle at 50% 45%,rgba(86,220,255,.12),rgba(5,8,7,.9) 65%);
  box-shadow:inset 0 0 32px rgba(86,220,255,.11),0 0 0 7px rgba(86,220,255,.035),0 0 26px rgba(86,220,255,.16);
}
.rest-track.big { width:100%;height:4px;margin:2px 0 18px;border-radius:0;background:rgba(171,200,181,.16); }
.rest-track.big span { display:block;height:100%;background:var(--hud-data);box-shadow:0 0 12px var(--hud-data); }
.rest-actions { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.rest-actions .btn { min-height:48px;border-radius:12px; }
.rest-actions .btn.primary { color:var(--accent-ink); }
.up-next { text-align:left;border:1px solid rgba(86,220,255,.18);background:rgba(86,220,255,.055); }
.up-next .label { color:var(--hud-data);font:700 10px/1.2 var(--display);letter-spacing:.12em;text-transform:uppercase; }
.up-next strong { color:var(--ink); }
.record-flash { color:var(--accent); }

/* Home · missione di oggi, settimana segmentata e quadranti */
.hero-card.hero .hero-time,.hero-card.hero .hero-meta b { font-variant-numeric:tabular-nums; }
.week-card,.stat,.metric,.rings-card,.card,.coach-item,.quick-tile {
  border-color:rgba(170,202,181,.17);
  background-color:rgba(15,21,17,.88);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}
.week-card { background-image:linear-gradient(145deg,rgba(86,220,255,.07),transparent 62%); }
.week li {
  min-width:0;position:relative;overflow:hidden;min-height:50px;
  border-radius:6px;background:rgba(86,220,255,.06);border:1px solid rgba(86,220,255,.16);
}
.week li b { font:700 14px/1 var(--display); }
.week li.done { background:rgba(214,255,99,.16);border-color:rgba(214,255,99,.72);color:var(--accent); }
.week li.done b,.week li.done i { color:var(--accent); }
.week li.today:not(.done) { border:1px solid var(--hud-data);box-shadow:inset 0 0 12px rgba(86,220,255,.08); }
.rings-card { border-color:rgba(86,220,255,.24); }
.rings-card .ring {
  position:relative;
  background:conic-gradient(var(--accent) var(--p),rgba(86,220,255,.18) 0);
  box-shadow:0 0 16px rgba(214,255,99,.14);
}
.rings-card .ring::before {
  content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;
  background:repeating-conic-gradient(rgba(5,8,7,.92) 0deg 1.4deg,transparent 1.4deg 8deg);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));
}
.rings-card .ring-center { position:relative;z-index:1;background:#0b100d; }
.rings-card .ring-center b { color:var(--ink); }
.rings-card .rings li.closed .ring-center b { color:var(--accent); }
.rings-card .rings li.closed .ring { box-shadow:0 0 22px rgba(214,255,99,.25); }
.rings-card .rings>li { color:var(--ink-2); }
.rings-card .rings li.closed { color:var(--accent); }

/* Riepilogo · rapporto di missione */
.facts.big {
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;
  padding:12px;border:1px solid rgba(86,220,255,.22);border-radius:18px;
  background:linear-gradient(145deg,rgba(86,220,255,.07),rgba(9,13,11,.84));
}
.facts.big>div {
  min-width:0;display:grid;align-content:center;gap:6px;min-height:82px;padding:12px;
  border:1px solid rgba(168,197,179,.12);border-radius:11px;background:rgba(4,8,6,.5);
}
.facts.big dt { color:var(--ink-2);font:700 10px/1.3 var(--display);letter-spacing:.1em;text-transform:uppercase; }
.facts.big dd { font-size:clamp(21px,6.5vw,30px);font-weight:800;line-height:1.05;overflow-wrap:anywhere; }
.records li { border-color:rgba(214,255,99,.24);background:linear-gradient(100deg,rgba(214,255,99,.095),rgba(10,15,12,.84)); }
.records li strong { color:var(--ink); }
.records li span { color:var(--accent);font-family:var(--display);font-variant-numeric:tabular-nums; }

/* Progressi · griglia di calendario e telemetria SVG */
.calendar .week li { border-radius:5px;border-color:rgba(86,220,255,.15);background:rgba(86,220,255,.055); }
.calendar .week li span { color:var(--ink-2); }
.calendar .week li b { color:var(--ink);font:700 14px/1 var(--display); }
.calendar .week li.done { background:rgba(214,255,99,.17);border-color:rgba(214,255,99,.66);color:var(--accent); }
.calendar .week li.done span,.calendar .week li.done b,.calendar .week li.done i { color:var(--accent); }
.calendar .week li.today:not(.done) { border-color:var(--hud-data);color:var(--hud-data); }
.chart {
  overflow:hidden;padding:12px;border:1px solid rgba(86,220,255,.2);border-radius:16px;
  background:linear-gradient(145deg,rgba(86,220,255,.055),rgba(7,11,9,.89));
}
.chart svg { display:block;width:100%;height:auto;overflow:visible; }
.chart .grid { stroke:rgba(171,203,184,.15);stroke-dasharray:2 4; }
.chart .tick { fill:#b9c8bf;font-family:var(--display);font-size:9px; }
.chart .line { stroke:var(--hud-data);stroke-width:2.5;filter:drop-shadow(0 0 4px rgba(86,220,255,.6)); }
.chart .area { fill:rgba(86,220,255,.09); }
.chart .pt { fill:#07100e;stroke:var(--hud-data);stroke-width:1.5; }
.chart .end { fill:var(--accent);stroke:#07100e;stroke-width:1.5;filter:drop-shadow(0 0 5px rgba(214,255,99,.85)); }
.chart .endlabel { fill:var(--accent);font-family:var(--display);font-weight:700; }
.chart .cross { stroke:rgba(86,220,255,.55);stroke-dasharray:3 3; }
.chart .hover { fill:var(--accent);filter:drop-shadow(0 0 5px var(--accent)); }
.chart .bar { fill:rgba(86,220,255,.62); }
.chart .bar.now { fill:var(--accent);filter:drop-shadow(0 0 5px rgba(214,255,99,.65)); }
.chart .hit { fill:transparent; }
.chart .zero { stroke:rgba(171,203,184,.28); }
.chart .tip { color:var(--ink);border:1px solid rgba(86,220,255,.32);background:#0a100df2; }

/* Pasti · terminal dati, niente barre decorative senza misura reale */
.quick-food {
  border:1px solid rgba(86,220,255,.26);
  background:
    linear-gradient(var(--hud-data),var(--hud-data)) left top/16px 1px no-repeat,
    linear-gradient(var(--hud-data),var(--hud-data)) left top/1px 16px no-repeat,
    linear-gradient(var(--hud-data),var(--hud-data)) right bottom/16px 1px no-repeat,
    linear-gradient(var(--hud-data),var(--hud-data)) right bottom/1px 16px no-repeat,
    radial-gradient(ellipse at 100% 0%,rgba(86,220,255,.07),transparent 58%),
    rgba(5,9,7,.94);
}
.quick-food textarea {
  min-height:90px;color:var(--accent);caret-color:var(--accent);
  border:1px solid rgba(86,220,255,.25);border-radius:8px;
  background-color:rgba(0,0,0,.68);
  background-image:linear-gradient(rgba(86,220,255,.035) 1px,transparent 1px);
  background-size:100% 24px;
  font-family:var(--display);font-size:14px;
}
.quick-food textarea::placeholder { color:#adbbb2;opacity:1; }
.quick-food textarea:focus { border-color:var(--accent);box-shadow:0 0 0 2px rgba(214,255,99,.13); }
.quick-food .added { border-color:rgba(214,255,99,.35);color:#effbd5;background:rgba(214,255,99,.09); }
.protein-ideas h2 { color:var(--accent); }
input.grams-edit { font-family:var(--display);border-color:rgba(86,220,255,.28); }
.nutrition-today>.row { border-color:rgba(86,220,255,.24);background:linear-gradient(110deg,rgba(86,220,255,.08),rgba(10,15,12,.86)); }
.nutrition-today .row-main strong { color:var(--hud-data);font-family:var(--display);font-variant-numeric:tabular-nums; }

/* Barra e tocchi */
.tabbar { background:rgba(5,8,7,.94);border-top-color:rgba(86,220,255,.22); }
.tabbar a.on { color:var(--accent);background:rgba(214,255,99,.08); }
.tabbar a.on svg { filter:drop-shadow(0 0 5px rgba(214,255,99,.45)); }
/* Motion timing and transitions remain owned by motion.css. */
@media(max-width:380px) {
  .g-set { padding:12px; }
  .stepper { gap:7px; }
  .stepper .step { width:48px;flex-basis:48px; }
  .step-input { font-size:clamp(28px,9vw,36px); }
  .rest-big { width:min(68vw,220px);height:min(68vw,220px); }
  .facts.big { gap:6px;padding:8px; }
  .facts.big>div { min-height:74px;padding:9px; }
  .rings-card .rings>li { font-size:9px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; }
}

/* Macro gauges use the real intake-to-goal ratio from nutrition.js. */
.nutrition-readout .facts:not(.big) { grid-template-columns:repeat(2,minmax(0,1fr));gap:9px; }
.nutrition-readout .facts:not(.big)>div {
  position:relative;min-width:0;overflow:hidden;padding:12px 12px 17px;
  border:1px solid rgba(86,220,255,.17);border-radius:11px;
  background:linear-gradient(145deg,rgba(86,220,255,.055),rgba(6,10,8,.88));
}
.nutrition-readout .facts:not(.big)>div::after {
  content:"";position:absolute;left:0;bottom:0;width:var(--macro-p,0%);height:3px;
  background:linear-gradient(90deg,var(--hud-data),var(--accent));
  box-shadow:0 0 10px rgba(86,220,255,.58);
}
.nutrition-readout .facts dt { color:var(--ink-2);font:700 10px/1.3 var(--display);letter-spacing:.11em;text-transform:uppercase; }
.nutrition-readout .facts dd { color:var(--ink);font-size:clamp(16px,4.7vw,21px);font-weight:800;overflow-wrap:anywhere; }
.nutrition-readout .facts small { color:var(--hud-data);font-family:var(--display);font-size:10px; }
.rest-screen .rest-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }

/* Lingue (2.2): armeno e russo. Fatto da Claude su richiesta di Dani mentre il grafico non c'è (vedi BRIEF_LINGUE.md). */
/* Armeno: il monospaziato non ha le lettere armene, quindi i numeri e le etichette usano il carattere di sistema
   con le cifre a larghezza fissa; niente maiuscolo né spaziatura larga, che in armeno si leggono male. */
:lang(hy) { --display: var(--font); }
:lang(hy) .pill, :lang(hy) .tag, :lang(hy) .kicker, :lang(hy) .metric span, :lang(hy) .label, :lang(hy) .meta-label,
:lang(hy) .g-set-head > strong, :lang(hy) .step-val > span, :lang(hy) .rest-label-big, :lang(hy) .up-next .label,
:lang(hy) .facts.big dt, :lang(hy) .nutrition-readout .facts dt { text-transform: none; letter-spacing: .01em; }
:lang(hy) .metric b, :lang(hy) .facts dd, :lang(hy) .step-val { font-variant-numeric: tabular-nums; }
/* Data in alto: in armeno e russo il mese va minuscolo, solo la prima lettera maiuscola. */
:lang(hy) .brand-sub, :lang(ru) .brand-sub { text-transform: none; }
:lang(hy) .brand-sub::first-letter, :lang(ru) .brand-sub::first-letter { text-transform: uppercase; }
/* Parole lunghe (armeno, russo): vanno a capo invece di uscire dai riquadri e dalla barra in basso. */
:lang(hy) main, :lang(ru) main { overflow-wrap: anywhere; hyphens: auto; }
:lang(hy) .tabbar a, :lang(ru) .tabbar a { font-size: 10.5px; letter-spacing: 0; }
