/* v38: a consistent type scale and a calmer rhythm for the two data views. */
.calendar-side {
  --side-title: 14px;
  --side-body: 14px;
  --side-meta: 12px;
  --side-total: 24px;
}
html[lang] .calendar-side .month-goal-label,
html[lang] .calendar-side .day-panel-header h2,
.calendar-side .upcoming-plans-header h2 {
  font-size: var(--side-title);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0;
}
html[lang] .calendar-side #monthGoalValue,
html[lang] .calendar-side #selectedDayTotal {
  min-height: 42px;
  padding-top: 9px;
  font-size: var(--side-total);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}
.calendar-side :is(.month-goal-meta, .day-date, .plan-when, .plan-meta, .plans-pager),
.calendar-layout .calendar-side .record-duration :is(small, em) {
  font-size: var(--side-meta);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0;
}
.calendar-side :is(.plan-title, .plans-empty),
.calendar-layout .calendar-side .record-duration,
.calendar-layout .calendar-side .record-duration > span {
  font-size: var(--side-body);
  line-height: 1.5;
  letter-spacing: 0;
}
.calendar-side .plan-title,
.calendar-layout .calendar-side .record-duration > span { font-weight: 550; }
.calendar-side .plans-footer .plans-view-all,
.calendar-layout .calendar-side .empty-state p {
  font-size: var(--side-meta);
  line-height: 1.5;
  font-weight: 500;
}
.calendar-side .plan-content { gap: 4px; }
.calendar-side .plan-when { font-variant-numeric: tabular-nums; }
.calendar-side .month-goal-meta,
.calendar-side .day-date { margin-top: 4px; }
.calendar-side .record-duration small { margin-top: 4px; }
.calendar-side .record-duration .record-note { margin-top: 4px; }
.calendar-side .record-row { align-items: start; }
.calendar-side .record-actions { align-items: center; }

/* One surface treatment and a small, reusable set of text sizes. */
#analysisView {
  --analysis-label-size: 12px;
  --analysis-body-size: 13px;
  --analysis-title-size: 16px;
  --analysis-card-radius: 20px;
  --analysis-card-line: color-mix(in srgb, var(--ink) 8%, transparent);
}
#analysisView .analysis-header { margin: 28px 0 24px; }
#analysisView .analysis-header h1 { font-size: 25px; font-weight: 650; line-height: 1.4; }
.analysis-v37 { gap: 20px; }
.analysis-v37 .analysis-surface,
#analysisView .analysis-main .ai-panel {
  border: 1px solid var(--analysis-card-line);
  border-radius: var(--analysis-card-radius);
  box-shadow: 0 5px 22px -15px rgba(31, 56, 43, .14), 0 1px 2px rgba(31, 56, 43, .015);
  padding: 26px 28px;
  background: var(--surface, #fff);
}
.analysis-v37 .analysis-section-title { min-height: 38px; gap: 16px; }
.analysis-v37 h2,
#analysisView .ai-panel-header h2 { font-size: var(--analysis-title-size); font-weight: 600; line-height: 1.5; }
.analysis-v37 h3 { font-size: var(--analysis-body-size); font-weight: 600; line-height: 1.5; }
.analysis-v37 :is(.analysis-caption, .analysis-footnote, .analysis-metric dt, .analysis-ring-caption, .analysis-data-notes) {
  font-size: var(--analysis-label-size);
  font-weight: 400;
  line-height: 1.65;
}
.analysis-v37 .analysis-text-button { padding-inline: 7px; margin-right: -7px; border-radius: 8px; font-size: var(--analysis-body-size); font-weight: 500; }
.analysis-v37 .analysis-month-body { gap: 30px; margin-top: 22px; }
.analysis-v37 .analysis-ring-copy { gap: 5px; }
.analysis-v37 .analysis-ring-copy > span { font-size: var(--analysis-label-size); line-height: 1.5; }
.analysis-v37 .analysis-ring-value { font-weight: 600; letter-spacing: -.015em; line-height: 1.2; }
.analysis-v37 .analysis-ring-caption { margin-top: 9px; }
.analysis-v37 .analysis-metrics { gap: 22px 18px; }
.analysis-v37 .analysis-metric dd { margin-top: 6px; font-size: 17px; line-height: 1.45; font-weight: 550; }
.analysis-v37 .analysis-metric.is-primary dd { font-size: 22px; font-weight: 600; }
.analysis-v37 .analysis-pace { margin-top: 20px; font-size: var(--analysis-body-size); line-height: 1.8; }
.analysis-v37 .analysis-pace strong { font-weight: 550; }
.analysis-v37 .analysis-planner { margin-top: 25px; padding-top: 18px; gap: 16px; }
.analysis-v37 .analysis-planner-control { gap: 10px; font-size: var(--analysis-label-size); }
.analysis-v37 .analysis-session-select { min-height: 42px; border-color: var(--analysis-card-line); border-radius: 10px; background-color: color-mix(in srgb, var(--surface-soft) 45%, white); }
.analysis-v37 .analysis-plan-result { gap: 4px 10px; }
.analysis-v37 .analysis-plan-result strong { font-size: var(--analysis-body-size); font-weight: 550; }
.analysis-v37 .analysis-plan-result span { font-size: var(--analysis-label-size); line-height: 1.5; }
.analysis-v37 .analysis-overview > .analysis-footnote { margin-top: 15px; }
.analysis-v37 .analysis-segmented { padding: 3px; border-radius: 11px; }
.analysis-v37 .analysis-segmented button { min-height: 36px; padding-inline: 12px; border-radius: 8px; font-size: var(--analysis-label-size); font-weight: 500; }
.analysis-v37 .analysis-trend-range { margin-top: 12px; line-height: 1.65; }
.analysis-v37 .analysis-chart { margin-top: 29px; gap: 10px; }
.analysis-v37 .analysis-chart-axis { font-size: 11px; }
.analysis-v37 .analysis-bar-fill { border-radius: 6px 6px 1px 1px; }
.analysis-v37 .analysis-bar-label { padding-top: 11px; min-height: 36px; font-size: 11px; }
.analysis-v37 .analysis-trend-detail { gap: 14px; padding-top: 17px; margin-top: 18px; min-height: 59px; }
.analysis-v37 .analysis-trend-detail-copy { gap: 7px 12px; font-size: var(--analysis-label-size); line-height: 1.65; }
.analysis-v37 .analysis-trend-detail-copy strong { font-size: 16px; line-height: 1.45; font-weight: 550; }
.analysis-v37 .analysis-trend-goal { font-size: var(--analysis-label-size); }
.analysis-v37 .analysis-distributions { gap: 36px; padding-top: 23px; }
.analysis-v37 .analysis-distributions h3 { margin-bottom: 19px; }
.analysis-v37 .analysis-distribution-rows,
.analysis-v37 .analysis-period-list { gap: 16px; }
.analysis-v37 .analysis-distribution-row { grid-template-columns: 30px minmax(0, 1fr) 66px; gap: 12px; font-size: var(--analysis-label-size); line-height: 1.5; }
.analysis-v37 .analysis-distribution-row strong { font-size: var(--analysis-label-size); font-weight: 500; }
.analysis-v37 .analysis-distribution-track { height: 6px; }
.analysis-v37 .analysis-period-stack { height: 13px; margin-bottom: 24px; border-radius: 5px; }
.analysis-v37 .analysis-period-list > div { font-size: var(--analysis-label-size); line-height: 1.5; }
.analysis-v37 .analysis-period-list dd { gap: 14px; }
.analysis-v37 .analysis-period-list dd span { font-size: var(--analysis-label-size); min-width: 31px; }
.analysis-v37 .analysis-periods > .analysis-footnote { margin-top: 24px; }
.analysis-v37 .analysis-data-notes { padding-inline: 3px; margin-top: -3px; }
#analysisView > .analysis-layout { margin-top: 22px; }
#analysisView .analysis-main .ai-panel { margin-top: 0; }
#analysisView .ai-panel-header { align-items: center; gap: 14px; }
#analysisView .ai-title-wrap { align-items: center; gap: 10px; }
#analysisView .ai-content { margin-top: 16px; padding-top: 17px; font-size: var(--analysis-body-size); line-height: 1.85; }
#analysisView .ai-content p { margin-top: 0; }
#analysisView .ai-content p:last-child { margin-bottom: 0; }
#analysisView .ai-updated { font-size: var(--analysis-label-size); }
@media (min-width: 1000px) {
  .analysis-v37 .analysis-surface { padding: 24px; }
  .analysis-v37 .analysis-month-body { grid-template-columns: 152px minmax(0, 1fr); gap: 23px; }
  .analysis-v37 .analysis-goal-ring { width: 152px; height: 152px; }
  .analysis-v37 .analysis-metrics { gap: 19px 16px; }
  .analysis-v37 .analysis-metric.is-primary dd { font-size: 21px; }
  .analysis-v37 .analysis-pace { margin-top: 18px; }
  .analysis-v37 .analysis-trend-detail { margin-top: auto; }
  .analysis-v37 .analysis-periods { padding-left: 32px; border-left: 1px solid var(--line); }
}
@media (max-width: 780px) {
  .analysis-v37 .analysis-surface,
  #analysisView .analysis-main .ai-panel { padding: 23px; }
}
@media (max-width: 560px) {
  .calendar-side { --side-total: 22px; }
  #analysisView { --analysis-card-radius: 18px; --analysis-title-size: 15px; }
  #analysisView .analysis-header { margin: 25px 0 21px; }
  #analysisView .analysis-header h1 { font-size: 23px; }
  .analysis-v37 { gap: 16px; }
  .analysis-v37 .analysis-surface,
  #analysisView .analysis-main .ai-panel { padding: 19px 18px; }
  .analysis-v37 .analysis-section-title { min-height: 36px; gap: 10px; }
  .analysis-v37 .analysis-section-title > .analysis-caption { font-size: var(--analysis-label-size); }
  .analysis-v37 .analysis-text-button { font-size: var(--analysis-label-size); }
  .analysis-v37 .analysis-month-body { grid-template-columns: 124px minmax(0, 1fr); gap: 17px 19px; margin-top: 20px; align-items: center; }
  .analysis-v37 .analysis-month-copy { display: contents; }
  .analysis-v37 .analysis-goal-ring { width: 124px; height: 124px; }
  .analysis-v37 .analysis-ring-copy { gap: 4px; }
  .analysis-v37 .analysis-ring-copy > span { font-size: 11px; }
  .analysis-v37 .analysis-ring-value { font-size: 27px; }
  .analysis-v37 .analysis-ring-caption { font-size: 11px; margin-top: 8px; }
  .analysis-v37 .analysis-metrics { gap: 12px; }
  .analysis-v37 .analysis-metric { gap: 4px 8px; }
  .analysis-v37 .analysis-metric dt { font-size: 11px; line-height: 1.6; }
  .analysis-v37 .analysis-metric dd { font-size: 14px; margin-top: 0; line-height: 1.45; }
  .analysis-v37 .analysis-metric.is-primary dd { font-size: 18px; margin-top: 3px; }
  .analysis-v37 .analysis-pace { grid-column: 1 / -1; margin-top: 0; font-size: var(--analysis-label-size); line-height: 1.75; }
  .analysis-v37 .analysis-planner { margin-top: 18px; padding-top: 16px; gap: 12px; }
  .analysis-v37 .analysis-planner-control { gap: 8px; }
  .analysis-v37 .analysis-session-select { font-size: 16px; min-width: 98px; }
  .analysis-v37 .analysis-plan-result { gap: 4px; }
  .analysis-v37 .analysis-plan-result span { font-size: 11px; }
  .analysis-v37 .analysis-overview > .analysis-footnote { margin-top: 14px; font-size: 11px; }
  .analysis-v37 .analysis-trend > .analysis-section-title { gap: 8px 10px; }
  .analysis-v37 .analysis-segmented button { padding: 6px 10px; font-size: 12px; }
  .analysis-v37 .analysis-trend-range { margin-top: 12px; font-size: 11px; }
  .analysis-v37 .analysis-chart { grid-template-columns: 32px minmax(0, 1fr); gap: 6px; margin-top: 27px; }
  .analysis-v37 .analysis-chart-axis,
  .analysis-v37 .analysis-bar-label { font-size: 10px; }
  .analysis-v37 .analysis-bar-label { padding-top: 10px; min-height: 33px; }
  .analysis-v37 .analysis-trend-detail { margin-top: 14px; padding-top: 15px; gap: 10px; }
  .analysis-v37 .analysis-trend-detail-copy { gap: 5px 10px; }
  .analysis-v37 .analysis-trend-detail-copy strong { font-size: 15px; }
  .analysis-v37 .analysis-distributions { padding-top: 19px; gap: 23px; }
  .analysis-v37 .analysis-distributions h3 { margin-bottom: 17px; }
  .analysis-v37 .analysis-distribution-rows,
  .analysis-v37 .analysis-period-list { gap: 14px; }
  .analysis-v37 .analysis-distribution-row { grid-template-columns: 28px minmax(0, 1fr) 64px; gap: 10px; }
  .analysis-v37 .analysis-periods { padding-top: 21px; }
  .analysis-v37 .analysis-period-stack { margin-bottom: 21px; }
  .analysis-v37 .analysis-periods > .analysis-footnote { margin-top: 20px; font-size: 11px; }
  .analysis-v37 .analysis-data-notes { font-size: 11px; }
  #analysisView > .analysis-layout { margin-top: 19px; }
  #analysisView .ai-panel-header { gap: 8px 12px; }
  #analysisView .ai-panel-header h2 { font-size: 14px; }
  #analysisView .ai-content { margin-top: 12px; padding-top: 15px; font-size: 13px; }
}
@media (max-width: 350px) {
  .analysis-v37 .analysis-surface,
  #analysisView .analysis-main .ai-panel { padding-inline: 14px; }
  .analysis-v37 .analysis-month-body { grid-template-columns: 108px minmax(0, 1fr); gap: 16px 12px; }
  .analysis-v37 .analysis-goal-ring { width: 108px; height: 108px; }
  .analysis-v37 .analysis-ring-value { font-size: 24px; }
  .analysis-v37 .analysis-metric.is-primary dd { font-size: 17px; }
  .analysis-v37 .analysis-planner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; align-items: end; }
  .analysis-v37 .analysis-planner-control { display: grid; gap: 6px; }
  .analysis-v37 .analysis-session-select { width: 100%; min-width: 0; }
  .analysis-v37 .analysis-plan-result { padding-bottom: 3px; }
  .analysis-v37 .analysis-segmented button { padding-inline: 8px; }
}
