.fasting-section { margin-top:24px; }
.fasting-card { padding:24px; }
.fasting-top,.fasting-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.fasting-top p { margin:5px 0; color:var(--sub); line-height:1.5; }
.fasting-top h4 { font-size:20px; margin:0; }
.fasting-actions { margin-top:20px; flex-wrap:wrap; }
.fasting-active { display:grid; grid-template-columns:190px 1fr; gap:28px; align-items:center; margin-top:22px; }
.fasting-ring { width:180px; height:180px; border-radius:50%; padding:9px; background:conic-gradient(var(--ink) var(--fasting-progress,0%),var(--line) 0); }
.fasting-ring-inner { height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:50%; background:var(--surface); }
.fasting-ring b { font-size:34px; font-variant-numeric:tabular-nums; }
.fasting-ring small { font-size:14px; color:var(--sub); margin-top:5px; }
.fasting-times { margin:0; display:grid; gap:14px; }
.fasting-times dt { font-size:14px; color:var(--sub); }
.fasting-times dd { margin:4px 0 0; font-size:16px; font-weight:600; }
.fasting-status { font-size:15px; line-height:1.5; margin:18px 0 0; }
.fasting-status:empty { display:none; }
.fasting-feedback { color:var(--sub); font-size:14px; margin-top:12px; }
dialog.fasting-dialog { border:0; border-radius:12px; color:var(--ink); background:var(--surface); width:min(530px,calc(100% - 32px)); max-height:90dvh; padding:24px; overflow:auto; box-shadow:var(--shadow); }
dialog.fasting-dialog::backdrop { background:rgba(23,25,28,.62); }
.fasting-dialog h2 { font-size:22px; margin:0; }
.fasting-dialog h3 { font-size:18px; }
.fasting-dialog .label { margin-top:18px; display:grid; gap:8px; }
.fasting-dialog p { line-height:1.5; }
.fasting-dialog .modal-actions { position:static; padding:0; margin-top:22px!important; }
.fasting-dialog .modal-actions button { min-height:44px; white-space:normal; }
.fasting-custom { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fasting-toggle { display:flex; align-items:center; gap:12px; margin-top:22px; font-size:16px; }
.fasting-toggle input { width:20px; height:20px; accent-color:var(--ink); }
.fasting-error { color:var(--red); }
.fasting-history-summary { display:flex; flex-wrap:wrap; gap:20px; padding:20px 0; border-bottom:1px solid var(--line); }
.fasting-history-summary strong { display:block; margin-top:6px; font-size:20px; }
.fasting-history-row { padding:15px 0; border-bottom:1px solid var(--line); display:grid; gap:6px; }
.fasting-history-row small { color:var(--sub); line-height:1.5; }
.fasting-history-row .fasting-top { align-items:flex-start; }
.fasting-history-row svg { width:18px; height:18px; vertical-align:middle; }
#fastingPreferencesFromGoals { margin:18px 0 0; }
@media(max-width:720px) {
  .fasting-card { padding:18px; }
  .fasting-active { grid-template-columns:1fr; gap:20px; justify-items:center; }
  .fasting-times { width:100%; grid-template-columns:1fr 1fr; }
  .fasting-times>div:last-child { grid-column:1/-1; }
  .fasting-actions { align-items:stretch; }
  .fasting-actions .primary { flex:1; }
  dialog.fasting-dialog { padding:20px 16px max(20px,env(safe-area-inset-bottom)); }
  .fasting-dialog .modal-actions { display:grid; grid-template-columns:1fr; }
  .fasting-custom { gap:10px; }
  .fasting-custom input { width:100%; min-width:0; }
}
