/* Palette copied from apps/web/styles/tokens.css.
   This layer changes presentation only; the mobile structure stays the same. */
:root {
  color-scheme: dark;
  --bg: var(--empathy-canvas);
  --paper: var(--empathy-elevated);
  --ink: var(--empathy-text);
  --muted: var(--empathy-text-muted);
  --line: var(--empathy-border);
  --purple: var(--empathy-violet-soft);
  --purple-soft: var(--empathy-violet-muted);
  --orange: #fb923c;
  --orange-soft: #f973161a;
  /* Legacy component aliases from the first concept. */
  --green: var(--empathy-violet-soft);
  --green-soft: #a855f71a;
  --module-accent: #22d3ee;
  --module-tint: #22d3ee18;
  --brand-gradient: linear-gradient(115deg, var(--empathy-violet-bright), var(--empathy-pink), var(--empathy-orange));
  --action-gradient: linear-gradient(#00000024, #00000024), linear-gradient(115deg, var(--empathy-violet-bright), var(--empathy-pink-hot), var(--empathy-orange-bright));
}
:root[data-module="analysis"], :root[data-module="profile"] { --module-accent: #e879f9; --module-tint: #e879f918; }
:root[data-module="nutrition"] { --module-accent: #fbbf24; --module-tint: #fbbf2418; }
:root[data-module="training"] { --module-accent: #fb923c; --module-tint: #fb923c18; }
:root[data-module="health"] { --module-accent: #fb7185; --module-tint: #fb718518; }
:root[data-module="physiology"] { --module-accent: #34d399; --module-tint: #34d39918; }
body {
  background:
    radial-gradient(ellipse 90% 55% at 15% -10%, #a855f718, transparent 55%),
    radial-gradient(ellipse 70% 45% at 95% 5%, #ec489910, transparent 50%),
    var(--empathy-canvas);
}
::selection { background: #a855f766; color: #fff; }
.workspace { background: transparent; }
.sidebar { background: #000000b3; border-color: var(--empathy-border); }
.brand { color: #fff; }
.nav-link.active { background: var(--action-gradient); color: #fff; box-shadow: 0 5px 22px #a855f725; border: 1px solid #ffffff12; }
.nav-link .nav-mark { background: #fff; }
.nav-link:hover:not(.active) { background: #ffffff08; color: #e9d5ff; }
.side-note { background: linear-gradient(140deg, #a855f714, #f9731608); border: 1px solid #a855f71f; }
.side-note .leaf-line { color: var(--empathy-violet-soft); }
.topbar { background: #00000099; }
.avatar { border: 1px solid #f9731640; background: #f973161f; color: #fdba74; }
.badge-dot { border-color: #000; background: var(--empathy-orange); }
.icon-btn { background: #ffffff05; }
.icon-btn:hover { border-color: #a855f766; background: #a855f71a; }
.page-heading .eyebrow { color: var(--module-accent); }
.page-heading .green { color: var(--empathy-orange); }
.card { background: linear-gradient(145deg, #ffffff04, #ffffff00), #0d0d10; border-color: var(--empathy-border); box-shadow: 0 8px 32px #00000030; }
.card h2, .card h3, .section-head h2, .page-heading h1 { color: #fff; }
.hero { background: radial-gradient(ellipse at 90% 5%, #ec489922, transparent 65%), linear-gradient(125deg, #a855f71f, #00000066), #08070b; border: 1px solid #a855f73d; box-shadow: 0 0 36px #a855f70b; }
.hero .tag.ghost { border-color: #22d3ee40; color: #67e8f9; background: #22d3ee12; }
.hero h2 { color: #fff; }
.hero p, .hero-footer { color: #d1d5db; }
.hero .score-ring { color: #a855f7; }
.score-ring .score strong { color: #fff; }
.score-ring .score small { color: #a1a1aa; }
.hero-footer .text-btn { color: #d8b4fe; }
.hero:after { border-color: #a855f72b; box-shadow: 0 0 0 32px #ec489908, 0 0 0 65px #f9731605; }
.metric { background: #ffffff04; }
.metric .metric-value { color: #fff; }
.metric .metric-note { color: #34d399; }
.metric .metric-note.neutral { color: #9ca3af; }
.metric:nth-child(1) .metric-title .icon { color: #c084fc; }
.metric:nth-child(2) .metric-title .icon { color: #22d3ee; }
.metric:nth-child(3) .metric-title .icon { color: #fb7185; }
.btn { background: var(--action-gradient); color: #fff; border: 1px solid #ffffff0d; box-shadow: 0 4px 18px #a855f719; }
.btn:hover { background: var(--action-gradient); filter: brightness(1.12); }
.btn.secondary { background: #ffffff06; color: #e5e7eb; border: 1px solid #ffffff26; box-shadow: none; }
.btn.secondary:hover { background: #ffffff0d; }
.btn.subtle, .btn.purple { background: #a855f71f; color: #e9d5ff; border-color: #a855f747; box-shadow: none; }
.btn.lime { background: #f973161f; color: #fdba74; }
.text-btn { color: #d8b4fe; }
.segmented { background: #ffffff05; }
.segmented .active { color: #f3e8ff; background: #a855f726; box-shadow: inset 0 0 0 1px #a855f74d; }
.tag { background: #a855f71a; color: #d8b4fe; border: 1px solid #a855f72b; }
.tag.ai { background: #a855f726; color: #e9d5ff; border-color: #a855f74d; }
.tag.orange { background: #f973161f; color: #fdba74; border-color: #f9731633; }
.tag.neutral { background: #ffffff08; color: #a1a1aa; border-color: #ffffff0d; }
.pill-icon { background: var(--module-tint); color: var(--module-accent); border: 1px solid var(--module-tint); }
.pill-icon.purple { background: #a855f71f; color: #d8b4fe; border-color: #a855f733; }
.pill-icon.orange { background: #f973161f; color: #fdba74; border-color: #f9731633; }
.timeline-track:before { border-color: #111; background: #71717a; }
.timeline-row.next .timeline-track:before { background: #f97316; box-shadow: 0 0 0 1px #f97316; }
.timeline-row.next .timeline-body { border-color: #f9731647; background: linear-gradient(100deg, #f9731612, #ec489906); }
.timeline-row.done .done-circle { background: #34d3991f; color: #6ee7b7; }
.timeline-row.skipped h3 { color: var(--muted); text-decoration: line-through; }
.ai-card { background: radial-gradient(ellipse at top right, #ec489914, transparent 75%), linear-gradient(140deg, #a855f71f, #a855f706), #0b090f; border-color: #a855f747; }
.ai-header { color: #d8b4fe; }
.ai-card p { color: #cbd5e1; }
.ai-card .btn { background: linear-gradient(110deg, #7e22ce, #9333ea 65%, #db2777); }
.ai-card .ai-meta { color: #a1a1aa; }
.water-card > .section-head > .icon { color: #22d3ee; }
.glass { border-color: #22d3ee40; background: #22d3ee0a; }
.glass.filled:after { background: #22d3ee; box-shadow: 0 0 8px #22d3ee22; }
.checkin { background: linear-gradient(130deg, #a855f712, #0d0d10); }
.mood { background: #ffffff04; border-color: #ffffff1a; color: #a1a1aa; }
.mood.active { background: #a855f726; border-color: #a855f766; color: #e9d5ff; }
.day.active { background: var(--action-gradient); border-color: #f9731666; color: #f3e8ff; }
.day.active .day-dot { background: #fff; }
.workout-bars { border-color: #f9731640; }
.workout-bars span { background: #f9731659; }
.workout-bars span.strong { background: linear-gradient(0deg, #ea580c, #fb923c); }
.exercise-img { background: #111111; }
.exercise-check, .check-btn { background: #ffffff06; color: #cbd5e1; border-color: #ffffff26; }
.exercise-check.active, .check-btn.active { background: #7e22ce; border-color: #c084fc66; color: #fff; }
.meal-card { background: var(--nutri-expo-card); border-color: #ff3fae33; }
.meal-card .meal-time { color: #fdba74; }
.meal-card .text-btn { color: #f9a8d4; }
.meal-illustration, .recipe-detail-art { background: linear-gradient(145deg, #ff3fae18, #ff8a1c14), #111; border: 1px solid #f9731626; }
.meal-illustration svg { filter: saturate(.9); }
.nutrition-summary .score-ring { color: #ff3fae; }
.progress { background: #ffffff0d; }
.progress span { background: var(--brand-gradient); }
.info-band { background: #a855f712; border-color: #a855f733; color: #d8b4fe; }
:root[data-module="health"] .info-band { background: #fb71850c; border-color: #fb718526; color: #fda4af; }
:root[data-module="physiology"] .info-band { background: #34d3990c; border-color: #34d39926; color: #6ee7b7; }
.zone-row .zone-track { background: #ffffff06; }
.integration-status { color: #34d399; }
.toggle:after { background: #fff; }
.toggle:before { background: #3f3f46; }
.toggle.on:before { background: #9333ea; }
.form-field input, .form-field select, .form-field textarea, .chat-form input { background: #080808; color: #fff; border-color: #ffffff26; }
dialog { background: #0d0d10; border-color: #a855f740; box-shadow: 0 20px 100px #000000cc; }
dialog::backdrop { background: #000000b3; }
.sheet-header { background: #111111f5; }
.sheet-drag { background: #52525b; }
.sheet-content p { color: #a1a1aa; }
.proposal-side.after { background: #a855f71f; border-color: #a855f766; }
.evidence { background: #ffffff05; border: 1px solid #ffffff0a; }
.chat-bubble { background: #a855f71f; border: 1px solid #a855f72b; color: #e9d5ff; }
/* Assistente vero (14 ottobre): gli a capo della risposta restano; la risposta in arrivo pulsa piano. */
.chat-bubble { white-space: pre-line; }
.chat-bubble.pending { opacity: .6; animation: chat-wait 1.2s ease-in-out infinite alternate; }
@keyframes chat-wait { to { opacity: .3; } }
@media (prefers-reduced-motion: reduce) { .chat-bubble.pending { animation: none; } }
.chat-bubble.user { background: #f973161a; border-color: #f9731626; color: #ffedd5; }
.suggested-prompts button { background: #ffffff05; color: #d1d5db; }
.unread-dot { background: #ec4899; }
.notice-count { color: #e9d5ff; background: #a855f726; }
.footer-note .icon { color: #c084fc; }
.skip-link { background: #7e22ce; }
#toast { background: #21102f; color: #f3e8ff; border: 1px solid #a855f74d; }
@media (max-width: 760px) {
  .topbar { background: transparent; }
  .mobile-nav { background: #000000ed; border-top-color: #a855f733; }
  .mobile-nav a { color: #9ca3af; }
  .mobile-nav a.active { color: #e9d5ff; }
  .mobile-nav a.active .nav-icon { background: linear-gradient(110deg, #a855f747, #ec489926, #f9731626); border: 1px solid #a855f740; }
  .mobile-nav a.active:after { background: #f97316; }
  .hero { background: radial-gradient(ellipse at top right, #ec48991a, transparent 70%), linear-gradient(140deg, #a855f726, #00000066), #08070b; }
}

/* Verso la gara (D27): le settimane del percorso, colorate per fase; quella in corso con il bordo. */
.race-path-verdict{margin-top:18px}
.race-path-weeks{height:84px;display:flex;align-items:flex-end;gap:3px;border-bottom:1px solid var(--line);margin:20px 0 8px;padding-top:8px}
.rp-base{--rp:#71717a}.rp-costruzione{--rp:#a855f7}.rp-scarico{--rp:#67e8f9}.rp-picco{--rp:#f97316}.rp-rifinitura{--rp:#22d3ee}.rp-gara{--rp:#ec4899}
.race-path-weeks .rp-week{flex:1;min-width:4px;border-radius:4px 4px 0 0;background:var(--rp);opacity:.8}
.race-path-weeks .rp-week.now{opacity:1;outline:2px solid var(--ink);outline-offset:1px}
.race-path-legend{margin-top:12px}.race-path-legend i{border-radius:2px;background:var(--rp)}
.race-path-meals{font-size:var(--fs-11,11px);line-height:1.7;margin-top:4px}
.race-path-growth{margin-top:4px}.race-path-growth>p:first-child{font-size:var(--fs-11,11px);color:var(--muted);margin-bottom:8px}
.race-path-growth .segmented{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.race-path-growth .segmented button{flex-direction:column;padding:8px 4px;gap:2px;white-space:normal;line-height:1.2}.race-path-growth .segmented small{font-size:var(--fs-10,10px);opacity:.75}
.race-path-growth .demo-caption{margin-top:8px}

/* I dati degli orologi nelle pagine dell'atleta vero (punto 1): note rispetto alla media, fasi del sonno, andamenti. */
.metric .metric-note.warn{color:#fb923c}
.metric .metric-note.good{color:#34d399}
.live-metrics .metric-title small{font-size:var(--fs-9,9px);opacity:.7;margin-left:2px}
.sleep-stages{display:flex;height:10px;border-radius:6px;overflow:hidden;margin-top:18px;background:#ffffff0d}
.sleep-stages span{display:block;height:100%}
.ss-deep{background:#6366f1}.ss-light{background:#7dd3fc}.ss-rem{background:#c084fc}.ss-awake{background:#f59e0b}
.sleep-legend{margin-top:10px}.sleep-legend i.ss-deep{background:#6366f1}.sleep-legend i.ss-light{background:#7dd3fc}.sleep-legend i.ss-rem{background:#c084fc}.sleep-legend i.ss-awake{background:#f59e0b}
.live-trends{display:grid;gap:22px}
/* Una scheda per argomento (15 ottobre): i grafici dentro un'altra scheda non hanno bordo né sfondo, le parti sono separate
   da una riga; le schede della pagina sono staccate tra loro. */
.page-cards{gap:20px}.page-cards>*{min-width:0}.page-cards .live-trends{gap:20px}
.chart-card.chart-embedded{padding:0;border:0;background:none;border-radius:0;overflow:visible;margin-top:4px}
.chart-embedded .plot-heading h3{font-size:var(--fs-15,15px);font-weight:650;letter-spacing:-.2px;margin-top:4px}
.card-part{font-size:var(--fs-15,15px);font-weight:650;letter-spacing:-.2px}
.analysis-latest.embedded .section-head{margin-bottom:10px}.analysis-latest.embedded h3{font-size:var(--fs-15,15px)}
.weight-card .chart-embedded{margin-top:18px}.weight-card .chart-embedded+.weight-form{margin-top:18px}
.live-metrics .metric{padding:14px 12px}.live-metrics .metric-title{white-space:normal;line-height:1.3;align-items:flex-start}
.intensity-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;margin-top:14px;background:#ffffff0d}
.intensity-bar span{display:block;height:100%}
.ib-bassa{background:#34d399}.ib-media{background:#facc15}.ib-alta{background:#f87171}
.intensity-legend{margin-top:10px}.intensity-legend i.ib-bassa{background:#34d399}.intensity-legend i.ib-media{background:#facc15}.intensity-legend i.ib-alta{background:#f87171}
.weeks-table tr.current th,.weeks-table tr.current td{color:#e9d5ff}
.route-mini{margin:16px 0 0;background:#0a0a0a;border:1px solid var(--line);border-radius:14px;padding:8px}
.route-mini svg{width:100%;height:auto;display:block}
.activity-samples .chart-card{margin-top:16px}
/* Le sedute del piano scritte da Sonnet (A8, plan-session-view.mjs): perché, barra dei tratti, tratti con le zone. */
.session-why{font-size:var(--fs-13,13px);line-height:1.55;margin:10px 0 0;font-style:italic;color:var(--ink)}
.session-bar{display:flex;height:10px;border-radius:6px;overflow:hidden;margin:14px 0 4px;background:#ffffff0d}.session-bar span{display:block;height:100%}
.session-blocks{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.session-blocks li{border-left:4px solid var(--z);padding:2px 0 2px 10px;display:grid;gap:2px}
.session-blocks strong{font-size:var(--fs-13,13px);font-weight:600}.session-blocks em{font-style:normal;font-weight:400;color:var(--muted);font-size:var(--fs-12,12px);margin-left:4px}
.session-blocks span{font-size:var(--fs-12,12px);color:var(--muted);line-height:1.5}
.session-zones{margin-top:10px}
.session-terms{margin-top:6px}
.session-terms strong{font-weight:600}
/* La pagina di una seduta dell'orologio (15 ottobre, session-view.mjs): come la seduta della demo, in una finestra più larga. */
dialog.session-dialog{width:min(920px,calc(100% - 32px))}
.session-page .session-eyebrow{color:#fb923c;font-size:var(--fs-9,9px);line-height:1.5}
.session-page .ride-kpis{margin:14px 0 18px}.session-page .ride-kpis em{font-style:normal;font-weight:400;font-size:var(--fs-11,11px);color:var(--muted)}
.session-page .route-map-stage{height:380px;margin-bottom:4px}.session-page .route-controls button{white-space:nowrap;padding:0}
.session-page .route-readout{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));margin-top:6px}
.session-page .route-signals{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.session-page .zone-row{margin-top:12px}
/* I valori della seduta in alto (19 ottobre): tre per riga, le voci lunghe non vanno a capo; nei grafici il minimo-massimo
   sta sempre sotto il valore, così le schede vicine restano allineate. */
.session-page .session-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 12px}.session-page .session-kpis>div{min-width:0}.session-page .session-kpis small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-page .session-kpis strong{white-space:nowrap}.session-page .session-kpis+.demo-caption{margin:-6px 0 16px}
.session-page .signal-reading{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.session-page .signal-card .signal-value{margin:0}.session-page .signal-range{white-space:nowrap}
.session-route-thumb{display:grid;place-items:center;background:radial-gradient(ellipse at 50% 50%,#fb923c12,transparent 70%),#0c0d10}
.session-route-thumb svg{width:100%;height:100%}
@media(max-width:760px){.session-page .route-map-stage{height:320px;margin:0 -4px 4px}.session-page .route-readout{grid-template-columns:repeat(3,minmax(0,1fr))}.session-page .route-signals{grid-template-columns:repeat(2,minmax(0,1fr))}.session-page .ride-kpis{gap:12px 10px}.session-page .ride-kpis strong{font-size:var(--fs-19,19px)}}
/* Il controllo del mattino (punto 3). */
.morning-reasons{list-style:none;display:grid;gap:6px;margin:14px 0 0;padding:0;font-size:var(--fs-13,13px)}
.morning-reasons li{padding-left:16px;position:relative}.morning-reasons li:before{content:'';position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:50%;background:#fb923c}
/* Salute senza il Completo (18 ottobre): icona barrata nella barra e pagina che si vede ma è disattivata. */
.nav-off-icon{position:relative;display:inline-flex}
.nav-off-icon::after{content:"";position:absolute;left:-3px;right:-3px;top:50%;height:2px;border-radius:2px;background:currentColor;transform:rotate(-45deg);box-shadow:0 0 0 1.5px var(--bg, #000)}
.side-nav .nav-link.off,.mobile-nav a.off{opacity:.62}
.health-off{opacity:.38;filter:grayscale(.7);pointer-events:none;user-select:none}
.health-off-band{margin-bottom:16px}
/* Il piano intorno alla seduta (18 ottobre): illustrazioni dei pasti a sinistra, «Apri Nutrition» a destra. */
.session-food .section-head{align-items:center}
.session-food-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.session-food .section-head + .session-food-row{border-top:0}
.session-food .section-head .btn{white-space:nowrap;flex-shrink:0}
.session-food .section-head h2{min-width:0}
.session-food-row small{display:block;font-size:var(--fs-10,10px);letter-spacing:1px;color:var(--muted)}
.session-food-row strong{display:block;font-size:var(--fs-13,13px);font-weight:600;margin-top:2px}
.session-food-row span:not(.session-food-art):not(.session-food-arts){display:block;font-size:var(--fs-12,12px);color:var(--muted);margin-top:2px}
.session-food-art{width:46px;height:46px;flex-shrink:0;display:inline-flex;border-radius:50%;overflow:hidden;background:#ffffff0d}
.session-food-art svg{width:100%;height:100%}
.session-food-arts{display:flex;flex-shrink:0}
.session-food-arts .session-food-art{width:40px;height:40px;margin-left:-10px;box-shadow:0 0 0 2px var(--surface, #111)}
.session-food-arts .session-food-art:first-child{margin-left:0}
.session-food-row p{font-size:var(--fs-12,12px);line-height:1.5}
/* Stanotte dentro la scheda della notte (18 ottobre): ora di andare a letto in evidenza e barre del sonno. */
.live-night .tonight{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.tonight-head{display:flex;align-items:center;gap:12px}
.tonight-head small{display:block;font-size:var(--fs-10,10px);letter-spacing:1px;color:var(--muted)}
.tonight-time{display:block;font-size:30px;font-weight:600;letter-spacing:-.5px;line-height:1.1}
.tonight-wake{text-align:right}
.tonight-wake strong{display:block;font-size:var(--fs-17,17px);font-weight:600}
.tonight-why{font-size:var(--fs-12,12px);line-height:1.55;margin-top:10px}
.tonight-bars{display:grid;gap:9px;margin-top:14px}
.tonight-bar{display:grid;grid-template-columns:minmax(110px,1.2fr) 2fr auto;align-items:center;gap:10px;font-size:var(--fs-12,12px)}
.tonight-bar span{color:var(--muted)}
.tonight-bar i{display:block;height:8px;border-radius:6px;background:#ffffff12;position:relative;overflow:hidden}
.tonight-bar i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);border-radius:6px;background:#a78bfa}
.tonight-bar.tb-last i::after{background:#7dd3fc}
.tonight-bar.tb-week i::after{background:#94a3b8}
.tonight-bar strong{font-weight:600;white-space:nowrap}
/* Il peso della settimana (18 ottobre). */
.weigh-in-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:12px}
.weigh-in-form .form-field{flex:1 1 140px;margin:0}
.tonight-parts{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:4px;font-size:var(--fs-12,12px)}
.tonight-parts li{display:flex;justify-content:space-between;gap:10px;color:var(--muted)}
.tonight-parts li strong{color:var(--ink, inherit);font-weight:600;white-space:nowrap}
/* Il consiglio sui pasti nella finestra «Pasti e orari» (18 ottobre). */
.meal-advice{margin:12px 0}
.meal-advice ul{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px;font-size:var(--fs-12,12px)}
.meal-advice li{display:flex;justify-content:space-between;align-items:center;gap:10px}
.meal-advice li.added span{text-decoration:line-through;opacity:.7}
/* Stanotte più grafico (19 ottobre, «altrimenti sono tante scritte»): la notte come una barra da «a letto» a «sveglia». */
.tonight-line{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}
.tonight-end{display:grid;justify-items:start;gap:2px}
.tonight-end.wake{justify-items:end;text-align:right}
.tonight-end small{font-size:var(--fs-9,9px);letter-spacing:1px;color:var(--muted)}
.tonight-end strong{font-size:26px;font-weight:600;letter-spacing:-.5px;line-height:1.05}
.tonight-end em{font-style:normal;font-size:var(--fs-10,10px);color:var(--muted)}
.tonight-icon{display:inline-flex;color:#a78bfa}.tonight-end.wake .tonight-icon{color:#fbbf24}
.tonight-track{position:relative;height:34px;display:grid;place-items:center;min-width:70px}
.tonight-track i{position:absolute;left:0;right:0;top:50%;height:6px;transform:translateY(-50%);border-radius:6px;background:linear-gradient(90deg,#6d28d9,#a78bfa 55%,#fbbf24)}
.tonight-track span{position:relative;padding:3px 10px;border-radius:999px;background:#141419;border:1px solid #a78bfa55;font-size:var(--fs-12,12px);font-weight:600;white-space:nowrap}
.tonight-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.tonight-chip{display:inline-flex;gap:6px;align-items:center;padding:5px 10px;border-radius:999px;background:#a78bfa14;border:1px solid #a78bfa33;font-size:var(--fs-11,11px);color:var(--muted)}
.tonight-chip strong{color:#c4b5fd}
.tonight-need{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.tonight-need p{font-size:var(--fs-12,12px);color:var(--muted);line-height:1.5;margin:0}
/* Stanotte (19 ottobre): i consigli in un riquadro con l'icona dell'AI; il sonno della routine in evidenza. */
.tonight-tip{margin-top:12px;padding:10px 12px;gap:9px;font-size:var(--fs-11,11px);line-height:1.55}
.tonight-tip svg{flex-shrink:0;margin-top:2px}
.tonight-tip p+p{margin-top:6px}
.tonight-need p strong{color:var(--ink);font-weight:650}
/* Stanotte senza la notte dall'orologio (19 ottobre): perché manca, in una riga. */
.night-missing{display:flex;align-items:flex-start;gap:8px;margin-top:10px;font-size:var(--fs-12,12px);line-height:1.5;color:var(--muted)}
.night-missing svg{flex-shrink:0;margin-top:2px}
/* Digiuni (19 ottobre): la fascia del giorno in Oggi e la riga del Ramadan nel profilo. */
.fast-band{margin-bottom:16px;align-items:center}
.ramadan-row{display:grid;gap:6px;justify-items:start}
.ramadan-row>span{font-size:var(--fs-12,12px);color:var(--muted)}
