/* FitNova profile steps dashboard — isolated stylesheet to avoid stale app.css caches. */
.profile-steps-card{
  --steps-accent:var(--profile-accent,#5868e9);
  --steps-surface:#18243a;
  --steps-surface-2:#202d45;
  --steps-surface-3:#1b2740;
  --steps-border:#2b3954;
  --steps-border-strong:#34425d;
  --steps-text:#f4f6ff;
  --steps-muted:#bac4d6;
  --steps-soft:#d7ddeb;
  overflow:hidden;
  border-radius:22px;
  background:linear-gradient(180deg,var(--steps-surface),#172238);
  border:1px solid var(--steps-border)!important;
}
.profile-steps-card>.card-body{padding:1.45rem!important}
.profile-steps-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem}
.profile-steps-head .eyebrow{letter-spacing:.13em}
.profile-steps-head h2{text-transform:capitalize;color:var(--steps-text)}
.profile-steps-head p{color:var(--steps-muted)!important}
.profile-step-month-nav{
  display:flex;align-items:center;gap:.25rem;flex:0 0 auto;
  padding:.28rem;border:1px solid var(--steps-border-strong);border-radius:16px;background:linear-gradient(145deg,var(--steps-surface-2),var(--steps-surface-3));
  box-shadow:none;white-space:nowrap
}
.profile-step-month-nav>span:not(.profile-step-month-btn){padding:0 .55rem;color:var(--steps-soft);font-size:.8rem;font-weight:800;text-transform:capitalize}
.profile-step-month-btn{
  width:36px;height:36px;display:grid;place-items:center;border-radius:10px;
  color:var(--steps-soft);text-decoration:none;transition:background .16s ease,color .16s ease,transform .16s ease
}
.profile-step-month-btn:hover{background:#293852;color:#fff;transform:translateY(-1px)}
.profile-step-month-btn.is-disabled{opacity:.3;cursor:default}

.profile-step-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-top:1.15rem!important}
.profile-step-stat{
  position:relative;min-width:0;min-height:122px;display:flex;align-items:flex-start;gap:.75rem;
  padding:1.05rem 1.15rem;border:1px solid var(--steps-border-strong);border-radius:20px;background:linear-gradient(145deg,var(--steps-surface-2),var(--steps-surface-3));
  box-shadow:0 10px 28px rgba(8,15,33,.18)
}
.profile-step-stat.is-primary{border-color:#4860b5;background:linear-gradient(145deg,#223050,#1a2740)}
.profile-step-stat-icon{
  flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;
  background:#243353;color:#8aa0ff;font-size:1.05rem
}
.profile-step-stat>div{min-width:0;padding-top:.03rem}
.profile-step-stat small,.profile-step-stat>div>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-step-stat small{color:var(--steps-muted);font-size:.69rem;font-weight:700}
.profile-step-stat strong{display:block;margin:.5rem 0 .28rem;color:var(--steps-text);font-size:1.8rem;line-height:1.05;font-weight:850;letter-spacing:-.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-step-stat>div>span{color:var(--steps-muted);font-size:.72rem}
.profile-step-stat .profile-step-source-name{font-size:1.1rem;letter-spacing:-.015em}

.profile-step-chart{
  margin-top:.85rem!important;padding:1rem 1.05rem .95rem;border:1px solid var(--steps-border-strong);border-radius:20px;
  background:linear-gradient(145deg,var(--steps-surface-2),var(--steps-surface-3));box-shadow:0 10px 28px rgba(8,15,33,.18)
}
.profile-step-chart-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.95rem}
.profile-step-chart-head>div strong,.profile-step-chart-head>div span{display:block}
.profile-step-chart-head>div strong{color:var(--steps-text);font-size:1rem;font-weight:820}
.profile-step-chart-head>div span{margin-top:.12rem;color:var(--steps-muted);font-size:.7rem;text-transform:capitalize}
.profile-step-chart-source{display:inline-flex;align-items:center;gap:.35rem;padding:.38rem .62rem;border-radius:999px;background:#29375b;color:#c7ceff;font-size:.67rem;font-weight:800;white-space:nowrap}
.profile-step-bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.7rem;align-items:end;min-height:174px;padding:.2rem .15rem 0}
.profile-step-day{height:162px;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.25rem;text-align:center}
.profile-step-day-value{width:100%;color:var(--steps-soft);font-size:.68rem;font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-step-bar-track{position:relative;width:36px;height:106px;border-radius:12px;background:#2b3851;overflow:hidden}
.profile-step-bar{position:absolute;left:0;right:0;bottom:0;min-height:4px;border-radius:11px 11px 4px 4px;background:linear-gradient(180deg,#12b89a 0%,#5367ea 100%);box-shadow:0 5px 13px rgba(76,100,221,.18)}
.profile-step-day.is-best .profile-step-bar{background:linear-gradient(180deg,#13cfa6 0%,#4057e6 100%)}
.profile-step-day.is-best .profile-step-day-value{color:#ffb5a8}
.profile-step-day.is-best .profile-step-day-name{color:#ff8f78}
.profile-step-day.is-today .profile-step-day-name{color:#9eb0ff}
.profile-step-day-name{color:var(--steps-soft);font-size:.69rem;font-weight:850;text-transform:capitalize}
.profile-step-day small{color:var(--steps-muted);font-size:.6rem}
.profile-step-chart-empty{padding:2rem 1rem;text-align:center;color:var(--steps-muted);font-size:.8rem}

.profile-step-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:.8rem!important}
.profile-step-source-row{
  min-width:0;display:flex;align-items:center;gap:.7rem;padding:.9rem .95rem;
  border:1px solid var(--steps-border-strong);border-radius:20px;background:linear-gradient(145deg,var(--steps-surface-2),var(--steps-surface-3));
  box-shadow:0 10px 28px rgba(8,15,33,.18)
}
.profile-step-source-row.is-primary{border-color:#4860b5;background:linear-gradient(145deg,#223050,#1a2740)}
.profile-step-source-icon{flex:0 0 36px;width:36px;height:36px;display:grid;place-items:center;border-radius:11px}
.profile-step-source-icon.health{background:#1f3a4c;color:#6be3c2}
.profile-step-source-icon.phone{background:#223353;color:#9eadff}
.profile-step-source-row>div{min-width:0}
.profile-step-source-row small,.profile-step-source-row strong{display:block}
.profile-step-source-row small{color:var(--steps-muted);font-size:.7rem}
.profile-step-source-row strong{margin-top:.12rem;color:var(--steps-text);font-size:1.15rem;font-weight:850;letter-spacing:-.03em}
.profile-step-source-badge{margin-left:auto;padding:.27rem .55rem;border-radius:999px;background:#29375b;color:#c7ceff;font-size:.58rem;font-weight:850;white-space:nowrap}
.profile-step-note{display:flex;align-items:flex-start;gap:.42rem;color:var(--steps-muted);font-size:.69rem;line-height:1.45}
.profile-step-note i{margin-top:.05rem;color:#8aa0ff}

/* Compact version on the private settings/profile column. */
.profile-steps-private .profile-step-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.profile-steps-private .profile-step-stat{min-height:98px;padding:.75rem;gap:.55rem}
.profile-steps-private .profile-step-stat-icon{width:34px;height:34px;flex-basis:34px}
.profile-steps-private .profile-step-stat strong{font-size:1.05rem}
.profile-steps-private .profile-step-chart{padding:.85rem .7rem .7rem}
.profile-steps-private .profile-step-bars{gap:.2rem}
.profile-steps-private .profile-step-bar-track{width:27px}
.profile-steps-private .profile-step-day-value{font-size:.56rem}
.profile-steps-private .profile-step-source-grid{grid-template-columns:1fr}

/* Public midnight profile / dark theme: reuse same stat-card look as the summary cards above. */
.public-profile-page .profile-steps-card,
body.public-profile-body .profile-steps-card{background:linear-gradient(180deg,#18243a,#172238);border-color:#2b3954!important}
.public-profile-page .profile-step-stat,
.public-profile-page .profile-step-chart,
.public-profile-page .profile-step-source-row,
.public-profile-page .profile-step-month-nav,
body.public-profile-body .profile-step-stat,
body.public-profile-body .profile-step-chart,
body.public-profile-body .profile-step-source-row,
body.public-profile-body .profile-step-month-nav{background:linear-gradient(145deg,#1c2943,#17243b);border-color:#2b3954;box-shadow:0 10px 28px rgba(8,15,33,.18)}


/* Explicit midnight-theme hooks kept for regression coverage. */
.public-profile-page.theme-midnight .profile-step-stat,
.public-profile-page.theme-midnight .profile-step-chart,
.public-profile-page.theme-midnight .profile-step-source-row,
.public-profile-page.theme-midnight .profile-step-month-nav,
body.public-profile-body.theme-midnight .profile-step-stat,
body.public-profile-body.theme-midnight .profile-step-chart,
body.public-profile-body.theme-midnight .profile-step-source-row,
body.public-profile-body.theme-midnight .profile-step-month-nav{background:linear-gradient(145deg,#1c2943,#17243b);border-color:#2b3954;box-shadow:0 10px 28px rgba(8,15,33,.18)}

@media(prefers-color-scheme:dark){
  body:not(.public-profile-body) .profile-step-month-nav,
  body:not(.public-profile-body) .profile-step-stat,
  body:not(.public-profile-body) .profile-step-chart,
  body:not(.public-profile-body) .profile-step-source-row{border-color:#34425d}
}
@media(max-width:900px){.profile-step-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){
  .profile-steps-card>.card-body{padding:1.05rem!important}
  .profile-steps-head{align-items:stretch;flex-direction:column;gap:.75rem}
  .profile-step-month-nav{align-self:flex-start}
  .profile-step-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
  .profile-step-stat{min-height:100px;padding:.78rem}
  .profile-step-stat-icon{width:34px;height:34px;flex-basis:34px}
  .profile-step-stat strong{font-size:1.25rem}
  .profile-step-bars{gap:.22rem;min-height:156px}
  .profile-step-day{height:146px}
  .profile-step-bar-track{width:29px;height:92px}
  .profile-step-day-value{font-size:.57rem}
  .profile-step-source-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .profile-step-stat-grid{grid-template-columns:1fr;gap:.45rem}
  .profile-step-stat{align-items:flex-start;gap:.45rem}
  .profile-step-stat-icon{width:31px;height:31px;flex-basis:31px}
  .profile-step-chart{padding:.8rem .5rem .6rem}
  .profile-step-chart-source{display:none}
  .profile-step-bars{gap:.1rem}
  .profile-step-bar-track{width:24px}
  .profile-step-source-grid{grid-template-columns:1fr}
  .profile-step-month-nav>span:not(.profile-step-month-btn){display:none}
}
