/*
  Fitvala UI (scoped to .fitvala-shell)
*/

:root{
  --fv-bg:#f6f7f9;
  --fv-card:#ffffff;
  --fv-text:#0f172a;
  --fv-muted:#64748b;
  --fv-border:#e6e8ee;
  --fv-shadow:0 10px 30px rgba(2,6,23,.06);

  --fv-green:#28C76F;
  --fv-orange:#FF8A40;

  /* Rings (Apple-like) */
  /* Keep within Fitvala brand palette */
  --fv-ring-activity: var(--fv-orange);
  --fv-ring-exercise: var(--fv-green);
  --fv-ring-nutrition:#FFB26B;
  --fv-ring-hydration:#3BA5F5;

  /* v1 Today rings */
  --fv-ring-habits:#5B8CFF;
  --fv-ring-consistency:#A855F7;

  /* Design system v2 (Apple-like polish within WP constraints) */
  --fv-radius-12:12px;
  --fv-radius-16:16px;
  --fv-radius-20:20px;
  --fv-radius-24:24px;
  --fv-space-4:4px;
  --fv-space-8:8px;
  --fv-space-12:12px;
  --fv-space-16:16px;
  --fv-space-20:20px;
  --fv-space-24:24px;
  --fv-space-32:32px;
  --fv-font-s:12px;
  --fv-font-m:14px;
  --fv-font-l:16px;
  --fv-font-xl:20px;
  --fv-font-2xl:28px;
  --fv-focus:0 0 0 4px rgba(40,199,111,.20);
  --fv-glass: rgba(255,255,255,.72);
}

@media (prefers-color-scheme: dark){
  :root{
    --fv-bg:#0b1220;
    --fv-card:#0f172a;
    --fv-text:#e5e7eb;
    --fv-muted:#94a3b8;
    --fv-border:rgba(148,163,184,.18);
    --fv-shadow:0 18px 60px rgba(0,0,0,.35);
    --fv-glass: rgba(15,23,42,.70);
  }
}

/* Shell + typography isolation */
.fitvala-shell,
.fitvala-page{
  max-width:1360px;
  margin:28px auto;
  padding:0 16px 40px;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--fv-text);
}

/* Give the app a clear premium surface (kept scoped to Fitvala markup) */
body{ background: var(--fv-bg); }
.fitvala-shell{ 
  background: radial-gradient(1200px 600px at 10% 0%, rgba(40,199,111,.08), transparent 60%),
              radial-gradient(900px 500px at 95% 5%, rgba(255,138,64,.10), transparent 55%);
  border-radius: var(--fv-radius-24);
}

@media (max-width: 720px){
  .fitvala-shell{ margin:10px auto; padding-bottom: 92px; } /* space for bottom nav */
}

/* Elementor canvas/layout compatibility
   - Allow Fitvala to control layout width.
*/
body.elementor-page .fitvala-shell,
body.elementor-page .fitvala-page{
  width:100%;
  max-width:1360px;
  margin-left:auto;
  margin-right:auto;
}

.fitvala-shell *,
.fitvala-page *{ box-sizing:border-box; }
.fitvala-shell h1,
.fitvala-shell h2,
.fitvala-shell h3,
.fitvala-shell h4,
.fitvala-page h1,
.fitvala-page h2,
.fitvala-page h3,
.fitvala-page h4{
  font-weight:700 !important;
  letter-spacing:-0.02em;
  margin:0 0 10px 0;
  line-height:1.15;
  color:var(--fv-text);
}
.fitvala-shell h1,
.fitvala-page h1{ font-size:34px !important; }
.fitvala-shell h2,
.fitvala-page h2{ font-size:22px !important; }
.fitvala-shell h3,
.fitvala-page h3{ font-size:16px !important; margin-top:14px; }
.fitvala-shell p,
.fitvala-page p{ margin:0 0 10px 0; color:var(--fv-text); }
.fitvala-muted{ font-size:13px; color:var(--fv-muted); margin-top:10px; }

/* Tick UI (used on Today + workouts) */
.fv-today-ticks{ display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.fv-tick-row{ display:flex; align-items:center; gap:10px; cursor:pointer; user-select:none; }
.fv-tick-input{ position:absolute; opacity:0; width:1px; height:1px; }
.fv-tick-ui{ width:22px; height:22px; border-radius:8px; border:1px solid var(--fv-border); background:#fff; box-shadow:0 1px 0 rgba(2,6,23,.04); display:inline-block; position:relative; }
.fv-tick-label{ font-weight:700; font-size:13px; color:var(--fv-text); }
.fv-tick-input:focus + .fv-tick-ui{ outline:2px solid rgba(40,199,111,.35); outline-offset:2px; }
.fv-tick-input:checked + .fv-tick-ui{ background:rgba(40,199,111,.15); border-color:rgba(40,199,111,.5); }
.fv-tick-input:checked + .fv-tick-ui:after{ content:""; position:absolute; left:7px; top:3px; width:6px; height:12px; border:3px solid var(--fv-green); border-top:0; border-left:0; transform:rotate(45deg); }

/* Today layout (desktop-first polish) */
.fitvala-today__layout{ display:grid; grid-template-columns:1fr; gap:16px; margin-top:14px; }
@media (min-width: 1024px){
  .fitvala-today__layout{ grid-template-columns:420px 1fr; align-items:start; gap:26px; }
}
.fitvala-today__left{ min-width:0; }
.fitvala-today__right{ min-width:0; }

/* Banners */
.fv-banner{ border:1px solid var(--fv-border); border-radius:16px; padding:12px 14px; background:#fff; box-shadow:0 6px 18px rgba(2,6,23,.04); margin-top:12px; }
.fv-banner__title{ font-weight:900; font-size:13px; }
.fv-banner__sub{ font-size:13px; color:var(--fv-muted); margin-top:4px; }
.fv-banner--ready{ border-color:rgba(40,199,111,.35); background:rgba(40,199,111,.06); }
.fv-banner--risk{ border-color:rgba(255,138,64,.40); background:rgba(255,138,64,.08); }
.fv-banner--complete{ border-color:rgba(40,199,111,.35); background:rgba(40,199,111,.08); }

.fv-streak{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:12px; }
.fv-streak__badge{ display:inline-flex; align-items:center; gap:8px; padding:6px 10px; border-radius:999px; background:rgba(255,138,64,.10); border:1px solid rgba(255,138,64,.22); font-weight:900; font-size:12px; }
.fv-streak__hint{ font-size:12px; color:var(--fv-muted); font-weight:800; }

/* Today goals card (Option A: calm, informative, competitor-like) */
.fv-goals{ margin-top:14px; border:1px solid var(--fv-border); border-radius:18px; padding:14px 14px 12px; background:linear-gradient(180deg, rgba(255,255,255,1), rgba(246,247,249,.75)); box-shadow:0 12px 34px rgba(2,6,23,.06); }
.fv-goals__head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.fv-goals__title{ font-weight:950; font-size:13px; letter-spacing:-0.01em; }
.fv-goals__sub{ font-size:12px; }
.fv-chip{ display:inline-flex; align-items:center; gap:8px; padding:6px 10px; border-radius:999px; border:1px solid rgba(2,6,23,.12); background:#fff; font-weight:900; font-size:12px; }
.fv-chip--muted{ background:rgba(2,6,23,.03); }
.fv-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.fv-goals__grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; margin-top:12px; }
@media (min-width: 1024px){ .fv-goals__grid{ grid-template-columns:repeat(4, minmax(0,1fr)); } }
.fv-metric{ border:1px solid rgba(2,6,23,.08); background:#fff; border-radius:16px; padding:10px 12px; box-shadow:0 6px 18px rgba(2,6,23,.04); }
.fv-metric__k{ font-size:11px; color:var(--fv-muted); font-weight:900; }
.fv-metric__v{ margin-top:4px; font-size:16px; font-weight:950; letter-spacing:-0.02em; }
.fv-unit{ font-size:11px; font-weight:900; color:var(--fv-muted); margin-left:4px; }
.fv-goals__hint{ margin-top:10px; font-size:12px; }

/* Toast (completion) */
.fv-toast{ position:fixed; left:16px; right:16px; bottom:20px; z-index:99999; background:#111827; color:#fff; padding:12px 14px; border-radius:16px; box-shadow:0 18px 60px rgba(0,0,0,.25); opacity:0; transform:translateY(10px); transition:all .25s ease; max-width:560px; margin:0 auto; }
.fv-toast.is-show{ opacity:1; transform:translateY(0); }
.fv-toast__title{ font-weight:900; font-size:13px; }
.fv-toast__sub{ font-size:12px; opacity:.85; margin-top:4px; }

/* Rings help */
.fv-rings-help{ margin-top:10px; border:1px dashed rgba(2,6,23,.16); border-radius:14px; padding:10px 12px; background:rgba(2,6,23,.02); }
.fv-rings-help__row{ display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:12px; color:var(--fv-muted); }
.fv-rings-help__row + .fv-rings-help__row{ margin-top:6px; }
.fv-k{ font-weight:900; color:var(--fv-text); }
.fv-v{ font-weight:800; }

/* Snapshot cards */
.fitvala-snap-grid{ display:grid; grid-template-columns:1fr; gap:12px; margin-top:12px; }
@media (min-width: 840px){ .fitvala-snap-grid{ grid-template-columns:1fr 1fr; } }
.fitvala-snap-card{ border:1px solid rgba(2,6,23,.08); border-radius:16px; padding:14px; background:linear-gradient(180deg, #fff, #fbfbfd); }
.fitvala-snap-title{ font-weight:900; font-size:14px; }

/* Habits cards */
.fitvala-action-grid{ display:grid; grid-template-columns:1fr; gap:12px; margin-top:10px; }
@media (min-width: 840px){ .fitvala-action-grid{ grid-template-columns:1fr 1fr; } }
.fitvala-action-card{ border:1px solid rgba(2,6,23,.08); border-radius:16px; padding:14px; background:#fff; }
.fitvala-action-title{ font-weight:900; }
.fitvala-action-row{ display:flex; gap:10px; align-items:center; margin-top:10px; }
.fitvala-steps-input{ width:100%; }

/* Progress (week/month) - Google Fit / Apple Health style */
.fv-progress-grid{ display:grid; grid-template-columns:1fr; gap:14px; margin-top:14px; }
@media (min-width: 1024px){ .fv-progress-grid{ grid-template-columns:1fr 1fr; } }
.fv-progress-card{ border:1px solid rgba(2,6,23,.08); border-radius:18px; padding:14px; background:#fff; }
.fv-progress-h{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.fv-progress-title{ font-weight:900; font-size:14px; }
.fv-progress-legend{ display:flex; gap:8px; flex-wrap:wrap; }
.fv-leg{ font-size:11px; font-weight:800; padding:2px 8px; border-radius:999px; background:rgba(2,6,23,.05); }
.fv-leg--nutrition{ background:rgba(255,138,64,.12); }
.fv-leg--activity{ background:rgba(40,199,111,.12); }
.fv-leg--habits{ background:rgba(91,140,255,.12); }

.fv-bars{ display:flex; gap:10px; align-items:flex-end; overflow-x:auto; padding:14px 4px 8px; }
.fv-bars__day{ min-width:36px; display:flex; flex-direction:column; align-items:center; gap:6px; }
.fv-bars__grp{ height:140px; width:28px; display:flex; align-items:flex-end; justify-content:center; gap:3px; }
.fv-bar{ width:7px; border-radius:999px; background:rgba(2,6,23,.08); }
.fv-bar--nutrition{ background:rgba(255,138,64,.65); }
.fv-bar--activity{ background:rgba(40,199,111,.65); }
.fv-bar--habits{ background:rgba(91,140,255,.65); }
.fv-bars__lbl{ font-size:11px; color:var(--fv-muted); font-weight:800; }

.fv-consistency{ margin-top:10px; }
.fv-consistency__row{ display:grid; grid-template-columns:38px 1fr 46px; gap:10px; align-items:center; padding:8px 0; }
.fv-consistency__label{ font-size:12px; font-weight:900; color:var(--fv-muted); }
.fv-consistency__track{ height:10px; border-radius:999px; background:rgba(2,6,23,.06); overflow:hidden; }
.fv-consistency__fill{ height:100%; border-radius:999px; background:rgba(168,85,247,.65); }
.fv-consistency__val{ font-weight:900; font-size:12px; text-align:right; }

/* Meals history table */
.fv-meals-table{ width:100%; border-collapse:separate; border-spacing:0; margin-top:14px; border:1px solid var(--fv-border); border-radius:14px; overflow:hidden; }
.fv-meals-table th,
.fv-meals-table td{ padding:10px 10px; font-size:13px; border-bottom:1px solid var(--fv-border); text-align:left; }
.fv-meals-table th{ background:rgba(2,6,23,.03); font-weight:900; color:var(--fv-text); }
.fv-meals-table tr:last-child td{ border-bottom:0; }
.fv-num{ font-variant-numeric: tabular-nums; }

/* Workout (Bodyspace-style cards) */
.fv-wk-grid{ display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.fv-wk-card{ display:flex; gap:12px; align-items:center; border:1px solid var(--fv-border); border-radius:16px; padding:12px; background:#fff; }
.fv-wk-thumb{ width:44px; height:44px; border-radius:14px; background:rgba(2,6,23,.06); box-shadow:inset 0 0 0 1px rgba(2,6,23,.04); }
.fv-wk-main{ flex:1; min-width:0; }
.fv-wk-title{ font-weight:900; }
.fv-wk-meta{ font-size:12px; color:var(--fv-muted); margin-top:2px; }
.fv-wk-check{ display:flex; align-items:center; }

/* Nav */
.fitvala-nav{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  padding:10px;
  margin:8px 0 18px;
  background:var(--fv-card);
  border:1px solid var(--fv-border);
  border-radius:14px;
  box-shadow:var(--fv-shadow);
}
.fitvala-nav__brand{ font-weight:800; padding:6px 10px; letter-spacing:-0.02em; }
.fitvala-nav__items{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.fitvala-nav__link{
  color:var(--fv-text);
  text-decoration:none;
  padding:8px 12px;
  border-radius:999px;
  font-weight:600;
  font-size:14px;
}
.fitvala-nav__link:hover{ background:rgba(2,6,23,.04); }
.fitvala-nav__link.is-active{
  background:rgba(40,199,111,.14);
  border:1px solid rgba(40,199,111,.25);
}

/* Desktop vs Mobile nav rules */
.fitvala-nav--mobile{ position:fixed; left:0; right:0; bottom:0; z-index:9999; margin:0; border-radius:16px 16px 0 0; }
.fitvala-nav--mobile .fitvala-nav__items{ width:100%; justify-content:space-between; }
.fitvala-nav__tab{ flex:1; display:flex; flex-direction:column; align-items:center; gap:4px; padding:10px 6px; text-decoration:none; color:var(--fv-muted); font-weight:700; font-size:11px; border-radius:12px; }
.fitvala-nav__tab.is-active{ color:var(--fv-text); background:rgba(255,138,64,.10); border:1px solid rgba(255,138,64,.20); }
.fitvala-nav__icon{ font-size:16px; line-height:1; }

@media (min-width: 992px){
  .fitvala-nav--mobile{ display:none; }
}
@media (max-width: 991px){
  .fitvala-nav--desktop{ display:none; }
  .fitvala-shell{ padding-bottom:90px; }
}

/* Bottom nav (v2) */
.fv-bottomnav{
  position:fixed;
  left:12px;
  right:12px;
  bottom:12px;
  z-index:9999;
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:6px;
  padding:10px;
  border-radius:20px;
  background:var(--fv-glass);
  border:1px solid var(--fv-border);
  box-shadow:0 18px 60px rgba(0,0,0,.18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.fv-bottomnav__item{
  text-decoration:none;
  color:var(--fv-muted);
  border-radius:16px;
  padding:8px 6px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:58px;
  border:1px solid transparent;
}
.fv-bottomnav__item:focus{ outline:none; box-shadow: var(--fv-focus); }
.fv-bottomnav__icon{ display:flex; align-items:center; justify-content:center; }
.fv-bottomnav__label{ font-size:11px; font-weight:900; letter-spacing:-0.01em; }
.fv-bottomnav__item.is-active{
  color:var(--fv-text);
  background:rgba(40,199,111,.12);
  border-color:rgba(40,199,111,.22);
}

@media (min-width: 992px){
  .fv-bottomnav{ display:none; }
}

/* Layout */
.fitvala-grid{ display:grid; grid-template-columns:1.4fr .9fr; gap:16px; }
@media (max-width: 980px){ .fitvala-grid{ grid-template-columns:1fr; } }

/* Cards */
.fitvala-card{
  background:var(--fv-card);
  border:1px solid var(--fv-border);
  border-radius:18px;
  padding:18px;
  box-shadow:var(--fv-shadow);
}
.fitvala-card + .fitvala-card{ margin-top:12px; }
.fitvala-card-h{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.fitvala-date{ font-size:13px; color:var(--fv-muted); }

/* List items */
.fitvala-list{ display:flex; flex-direction:column; gap:10px; margin:10px 0; }
.fitvala-item{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:12px;
  border:1px solid rgba(2,6,23,.06);
  border-radius:14px;
  background:linear-gradient(180deg, #fff, #fbfbfd);
}
.fitvala-item input[type="checkbox"]{
  margin-top:2px;
  width:18px;
  height:18px;
  accent-color: var(--fv-green);
}
.fitvala-item-title{ font-weight:700; font-size:14px; }
.fitvala-item-sub{ font-size:13px; color:var(--fv-muted); margin-top:2px; }

/* Meals + nutrition summary */
.fitvala-nutrition-summary{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  padding:10px 12px;
  border:1px solid rgba(2,6,23,.06);
  border-radius:14px;
  background:rgba(2,6,23,.02);
  margin:10px 0;
  font-size:13px;
}
.fitvala-meals{ display:flex; flex-direction:column; gap:14px; margin-top:10px; }
.fitvala-meal-card{ border:1px solid rgba(2,6,23,.06); border-radius:18px; padding:14px; background:#fff; }
.fitvala-meal-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.fitvala-meal-title{ font-weight:800; font-size:15px; }
.fitvala-meal-macros{ display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; font-size:12px; color:var(--fv-muted); }
.fitvala-item--meal{ align-items:center; }
.fitvala-item-body{ flex:1; }

.fitvala-pro-masked{
  position:relative;
  overflow:hidden;
}
.fitvala-pro-badge{
  margin-left:auto;
  padding:2px 8px;
  border-radius:999px;
  font-weight:800;
  font-size:12px;
  background:rgba(255,138,64,.14);
  border:1px solid rgba(255,138,64,.28);
  color:var(--fv-text);
}
.fitvala-pro-mask-inline{
  display:inline-block;
  padding:1px 8px;
  border-radius:999px;
  background:rgba(2,6,23,.06);
  color:var(--fv-muted);
  font-weight:700;
  font-size:12px;
}

/* Buttons + inputs */
.fitvala-btn{
  border:none;
  border-radius:14px;
  padding:10px 14px;
  font-weight:800;
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  transition:transform .12s ease, filter .12s ease, background .12s ease, border-color .12s ease;
}
.fitvala-btn:active{ transform:translateY(1px); }
.fitvala-btn[disabled]{ opacity:.55; cursor:not-allowed; }
.fitvala-btn--primary{ background:var(--fv-green); color:#fff; }
.fitvala-btn--secondary{ background:var(--fv-orange); color:#fff; }
.fitvala-btn--ghost{ background:rgba(2,6,23,.04); border:1px solid rgba(2,6,23,.10); color:var(--fv-text); }
.fitvala-btn--danger{ background:#ef4444; color:#fff; }
.fitvala-btn:hover{ filter:brightness(.97); }
.fitvala-link{ color:#0b57d0; text-decoration:none; font-weight:600; }
.fitvala-link:hover{ text-decoration:underline; }

.fitvala-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:12px;
  flex-wrap:wrap;
}
.fitvala-steps input,
.fitvala-form-row input,
.fitvala-form-row select{
  padding:10px 12px;
  border:1px solid rgba(2,6,23,.14);
  border-radius:12px;
  min-height:40px;
  background:#fff;
  font-size:14px;
}
.fitvala-steps input{ min-width:140px; }

/* Rings */
.fitvala-rings{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:12px;
  margin-top:10px;
}
@media (max-width: 520px){
  .fitvala-rings{ grid-template-columns:repeat(2, 1fr); }
}
.fitvala-ring{
  border:1px solid rgba(2,6,23,.06);
  border-radius:16px;
  padding:12px;
  text-align:center;
  background:#fff;
}
.fitvala-ring-svg{
  width:56px;
  height:56px;
  margin:0 auto 8px;
  display:block;
}
.fitvala-ring-val{
  font-weight:800;
  font-size:14px;
}
.fitvala-ring-label{
  font-size:12px;
  color:var(--fv-muted);
  margin-top:2px;
  font-weight:700;
}
.fitvala-ring .fv-track{
  stroke: rgba(2,6,23,.10);
}
.fitvala-ring .fv-prog{
  stroke-linecap: round;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
}

/* Forms */
.fitvala-form{
  margin-top:14px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
@media (max-width: 820px){
  .fitvala-form{ grid-template-columns:1fr; }
}
.fitvala-form-row label{
  display:block;
  font-size:13px;
  font-weight:700;
  color:var(--fv-muted);
  margin-bottom:6px;
}
.fitvala-form-row input,
.fitvala-form-row select{ width:100%; }

.fitvala-form-actions{
  grid-column:1 / -1;
  display:flex;
  gap:10px;
  align-items:center;
}

.fitvala-form-grid{ grid-column:1 / -1; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px; }
@media (max-width: 980px){ .fitvala-form-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width: 520px){ .fitvala-form-grid{ grid-template-columns:1fr; } }

.fitvala-checklist{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
@media (max-width: 520px){ .fitvala-checklist{ grid-template-columns:1fr; } }
.fitvala-check{ display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border:1px solid rgba(2,6,23,.08); border-radius:14px; background:#fff; box-shadow:0 6px 18px rgba(2,6,23,.03); }
.fitvala-check input{ margin-top:2px; }

/* Tables */
.fitvala-table{
  width:100%;
  border-collapse:collapse;
  margin-top:10px;
  overflow:hidden;
  border:1px solid rgba(2,6,23,.06);
  border-radius:14px;
}
.fitvala-table th,
.fitvala-table td{
  border-bottom:1px solid rgba(2,6,23,.06);
  padding:12px;
  text-align:left;
  font-size:14px;
}
.fitvala-table th{
  font-size:12px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--fv-muted);
  background:rgba(2,6,23,.02);
}
.fitvala-table tr:last-child td{ border-bottom:none; }

/* Pro lock block */
.fitvala-lock{
  border:1px dashed rgba(255,138,64,.65);
  border-radius:16px;
  padding:14px;
  margin:12px 0;
  background: rgba(255,138,64,.08);
}
.fitvala-lock strong{ display:block; margin-bottom:6px; }

/* Success */
.fitvala-success{
  background:rgba(40,199,111,.12);
  border:1px solid rgba(40,199,111,.25);
  padding:12px 14px;
  border-radius:16px;
  margin-bottom:12px;
  font-weight:700;
}

/* ------------------------------------------------------------
   Dashboard: concentric rings + review cards
------------------------------------------------------------ */
.fitvala-rings-concentric{display:flex;justify-content:center;align-items:center;padding:12px 0;}
.fitvala-rings-concentric svg{width:280px;height:280px;max-width:100%;}
.fitvala-ring-center{fill:var(--fv-card);}
.fitvala-ring-bg{stroke:#e9eef3;}
.fitvala-ring-fg{stroke-linecap:round;}
.fitvala-ring-title{font-size:42px;font-weight:800;fill:var(--fv-text);}
.fitvala-ring-sub{font-size:14px;fill:var(--fv-muted);}
.fitvala-ring-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px;}
.fitvala-ring-legend .item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--fv-border);border-radius:12px;background:var(--fv-card);}
.fitvala-ring-legend .dot{width:10px;height:10px;border-radius:999px;background:var(--c);}
.fitvala-ring-legend .pct{font-weight:800;}
.fitvala-review-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;}
@media (max-width: 980px){.fitvala-review-row{grid-template-columns:1fr;}}
.fitvala-review{padding:14px;border:1px solid var(--fv-border);border-radius:16px;background:var(--fv-card);}
.fitvala-review h3{margin:0 0 6px 0;font-size:16px;}
.fitvala-review .kpis{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;}
.fitvala-review .kpi{padding:6px 10px;border-radius:999px;background:var(--fv-surface);border:1px solid var(--fv-border);font-size:12px;}
.fitvala-teaser{opacity:.9;}
.fitvala-teaser .fitvala-mask{margin-top:10px;}

/* ------------------------------------------------------------
   App Navigation Contract
------------------------------------------------------------ */
.fitvala-nav--desktop{display:none;}
.fitvala-nav--mobile{display:flex;gap:10px;justify-content:space-between;align-items:center;position:sticky;bottom:0;z-index:50;padding:10px 12px;background:rgba(255,255,255,0.95);backdrop-filter:blur(8px);border-top:1px solid var(--fv-border);border-radius:16px;}
.fitvala-nav__link{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 12px;border-radius:14px;text-decoration:none;color:var(--fv-muted);min-width:60px;}
.fitvala-nav__link .icon{font-size:18px;line-height:18px;}
.fitvala-nav__link .label{font-size:12px;}
.fitvala-nav__link.is-active{color:var(--fv-text);background:var(--fv-surface);border:1px solid var(--fv-border);}

@media (min-width: 992px){
  .fitvala-nav--desktop{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px;margin:8px 0 18px;background:var(--fv-card);border:1px solid var(--fv-border);border-radius:14px;box-shadow:var(--fv-shadow);}
  .fitvala-nav--mobile{display:none;}
  .fitvala-app{padding-bottom:0;}
}
@media (max-width: 991px){
  .fitvala-app{padding-bottom:76px;}
}

/* ------------------------------------------------------------
   Modals (lightweight)
------------------------------------------------------------ */
.fitvala-modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.35);z-index:100;}
.fitvala-modal.is-hidden{display:none;}
.fitvala-modal__panel{width:min(520px,92vw);background:var(--fv-card);border:1px solid var(--fv-border);border-radius:18px;box-shadow:0 18px 60px rgba(0,0,0,0.18);padding:16px;}
.fitvala-modal__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.fitvala-modal__header h3{margin:0;font-size:16px;}
.fitvala-x{background:transparent;border:none;font-size:18px;cursor:pointer;color:var(--fv-muted);}

/* Coach */
.fv-chat-log{height:360px;overflow:auto;border:1px solid var(--fv-border);border-radius:16px;padding:12px;background:var(--fv-surface);}
.fv-chat-bubble{max-width:86%;padding:10px 12px;border-radius:16px;margin:8px 0;white-space:pre-wrap;}
.fv-chat-bubble--user{margin-left:auto;background:rgba(40,199,111,0.15);border:1px solid rgba(40,199,111,0.25);}
.fv-chat-bubble--assistant{margin-right:auto;background:rgba(255,138,64,0.12);border:1px solid rgba(255,138,64,0.22);}
.fv-chat-tools{display:flex;gap:10px;align-items:center;margin-top:10px;}
.fv-chat-tools input{flex:1;}
.fv-chat-chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;}
.fv-chat-chip{padding:8px 10px;border-radius:999px;background:var(--fv-card);border:1px solid var(--fv-border);cursor:pointer;font-size:12px;}

/* Collapsible panels */
.fv-panel{border:1px solid var(--fv-border);border-radius:16px;background:var(--fv-card);}
.fv-panel summary{cursor:pointer;padding:12px 14px;font-weight:700;}
.fv-panel .fv-panel-body{padding:0 14px 14px;}

/* Guest / marketing pages */
.fv-guest{max-width:1100px;margin:0 auto;padding:24px;}
.fv-guest-hero{display:grid;grid-template-columns:1.2fr 0.8fr;gap:24px;align-items:start;}
.fv-guest-title{margin:0 0 8px;font-size:40px;letter-spacing:-0.02em;}
.fv-guest-subtitle{margin:0 0 16px;color:var(--fv-muted);max-width:38rem;}
.fv-guest-cta{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 0;}
.fv-guest-footnote{margin-top:12px;color:var(--fv-muted);font-size:12px;}
.fv-guest-card{border:1px solid var(--fv-border);border-radius:18px;background:var(--fv-card);padding:16px;}
.fv-guest-card__title{font-weight:800;margin-bottom:8px;}
.fv-guest-list{margin:0;padding-left:18px;color:var(--fv-muted);}
.fv-guest-section{margin-top:28px;}
.fv-guest-h2{margin:0 0 12px;font-size:18px;}
.fv-guest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.fv-guest-feature{border:1px solid var(--fv-border);border-radius:16px;background:var(--fv-surface);padding:14px;}
.fv-guest-feature__h{font-weight:800;margin-bottom:6px;}
.fv-guest-feature__p{color:var(--fv-muted);margin:0;}
.fv-guest-auth{max-width:560px;}
.fv-guest-auth__card{border:1px solid var(--fv-border);border-radius:20px;background:var(--fv-card);padding:20px;}
.fv-guest-form__links{display:flex;justify-content:space-between;gap:12px;margin-top:10px;flex-wrap:wrap;}
.fv-field{display:block;margin:10px 0;}
.fv-field span{display:block;font-size:12px;color:var(--fv-muted);margin-bottom:6px;}
.fv-alert{padding:10px 12px;border-radius:14px;margin:10px 0;border:1px solid var(--fv-border);background:var(--fv-surface);}
.fv-alert--error{border-color:rgba(235,87,87,0.3);background:rgba(235,87,87,0.08);}
@media (max-width: 991px){
  .fv-guest-hero{grid-template-columns:1fr;}
  .fv-guest-grid{grid-template-columns:1fr;}
  .fv-guest-title{font-size:32px;}
}

/* =========================================================
   Responsive navigation + rings
   ========================================================= */

@media (min-width: 992px) {
  .fitvala-nav--desktop{display:flex;}
  .fitvala-nav--mobile{display:none;}
}

@media (max-width: 991.98px) {
  .fitvala-shell{padding-bottom:78px;} /* bottom nav clearance */
  .fitvala-nav--desktop{display:none;}
  .fitvala-nav--mobile{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:9999;padding:10px 12px;background:#fff;border-top:1px solid var(--fv-border);}
  .fitvala-nav--mobile .fitvala-nav__list{display:flex;gap:10px;justify-content:space-between;width:100%;max-width:560px;margin:0 auto;}
  .fitvala-nav--mobile .fitvala-nav__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 6px;border-radius:14px;font-size:12px;}
  .fitvala-nav--mobile .fitvala-nav__item.is-active{background:rgba(40,199,111,0.12);}
}

.fv-rings{display:flex;justify-content:center;align-items:center;margin:10px 0 14px;}
.fv-rings svg{max-width:320px;width:100%;height:auto;}
.fv-rings .fv-ring-track{stroke:rgba(15,15,15,0.08);}
.fv-rings .fv-ring-arc{stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;}
.fv-rings .fv-ring-text{font-weight:900;fill:var(--fv-text);}
.fv-rings .fv-ring-subtext{fill:var(--fv-muted);font-weight:700;}

/* -------------------------------------------------------------------------- */
/* Navigation (support current markup: .fitvala-nav__items/.fitvala-nav__tab)   */
/* -------------------------------------------------------------------------- */

.fitvala-nav__items{display:flex;gap:10px;justify-content:space-between;width:100%;max-width:560px;margin:0 auto;}
.fitvala-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 6px;border-radius:14px;font-size:12px;text-decoration:none;}
.fitvala-nav__tab.is-active{background:rgba(40,199,111,0.12);}
.fitvala-nav__icon{font-size:16px;line-height:1;margin-bottom:4px;}
.fitvala-nav__label{font-size:12px;color:var(--fv-muted);}
.fitvala-nav__tab.is-active .fitvala-nav__label{color:var(--fv-text);font-weight:700;}

/* -------------------------------------------------------------------------- */
/* Today (Contract v1)                                                        */
/* -------------------------------------------------------------------------- */

.fitvala-today__top{padding:18px;}
.fitvala-today__greeting h2{margin:0 0 4px;font-size:22px;letter-spacing:-0.02em;}
.fitvala-concentric{display:grid;grid-template-columns:140px 1fr;gap:14px;align-items:center;margin-top:12px;}
.fitvala-concentric-svg{width:220px;height:220px;display:block;}
.fv-c-track{stroke:rgba(15,23,42,.10);}
.fv-c-prog{stroke-linecap:round;transform:rotate(-90deg);transform-origin:60px 60px;transition:stroke-dashoffset .55s ease;}
.fitvala-concentric-legend{display:grid;gap:8px;}
.fitvala-legend-item{display:flex;align-items:center;gap:8px;}
.fitvala-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;}
.fitvala-legend-label{font-weight:700;font-size:13px;min-width:92px;}
.fitvala-legend-val{font-weight:800;font-size:13px;}
.fitvala-legend-sub{margin-left:18px;font-size:12px;line-height:1.1;}

.fitvala-today__snapshot{margin-top:16px;}
.fitvala-snap-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:12px;}
@media (min-width: 1280px){
  .fitvala-snap-grid{grid-template-columns:1fr;}
}
.fitvala-snap-card{border:1px solid rgba(2,6,23,.08);border-radius:18px;background:var(--fv-card);padding:14px;box-shadow:0 14px 40px rgba(2,6,23,.06); transition:transform .18s ease, box-shadow .18s ease;}
.fitvala-snap-title{font-weight:900;margin-bottom:6px;}
.fitvala-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;}
.fitvala-secondary-links{margin-top:8px;}

/* Weekly bars */
.fv-charts__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.fv-bars{display:flex;align-items:flex-end;gap:10px;margin-top:10px;padding:8px 6px;border:1px solid rgba(2,6,23,.08);background:rgba(2,6,23,.02);border-radius:18px;}
.fv-bar{width:32px;}
.fv-bar__stack{height:120px;border-radius:14px;background:rgba(2,6,23,.06);overflow:hidden;display:flex;align-items:flex-end;}
.fv-bar__seg{display:block;width:100%;background:linear-gradient(180deg, rgba(40,199,111,.9), rgba(255,138,64,.85));transition:height .55s ease;}
.fv-bar__lbl{font-size:11px;color:var(--fv-muted);font-weight:900;text-align:center;margin-top:6px;}
.fv-bars__legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;}
@media (max-width: 520px){ .fv-bar{width:26px;} .fv-bar__stack{height:102px;} }
.fitvala-link{background:none;border:none;padding:0;color:#2563eb;text-decoration:none;font-weight:700;cursor:pointer;}
.fitvala-dot{display:inline-block;margin:0 6px;color:var(--fv-muted);}

.fitvala-daily-action{margin-top:14px;border-top:1px dashed rgba(100,116,139,.35);padding-top:14px;}
.fitvala-action-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:10px;}
@media (min-width:768px){.fitvala-action-grid{grid-template-columns:1fr 1fr;}}
.fitvala-action-card{border:1px solid var(--fv-border);border-radius:18px;background:var(--fv-surface);padding:14px;}
.fitvala-action-row{display:flex;gap:10px;align-items:center;margin-top:8px;}
.fitvala-steps-input{width:140px;max-width:45%;padding:10px 12px;border-radius:14px;border:1px solid var(--fv-border);font-weight:700;}

.fitvala-micro{margin-top:12px;}
.fitvala-nudge{margin-top:10px;text-align:center;font-weight:800;}
.fitvala-secondary{margin-top:10px;text-align:center;}

@media (max-width: 700px){
  .fitvala-concentric{grid-template-columns:1fr;justify-items:center;text-align:left;}
  .fitvala-concentric-legend{width:100%;max-width:380px;}
  .fitvala-snap-grid{grid-template-columns:1fr;}
}


@media (min-width:1024px){
  body.elementor-page .fitvala-progress .fitvala-card,
  body.elementor-page .fitvala-meals .fitvala-card,
  body.elementor-page .fitvala-workouts .fitvala-card,
  body.elementor-page .fitvala-profile .fitvala-card{ max-width:960px; margin-left:auto; margin-right:auto; }
}

.fitvala-action-split{display:grid;grid-template-columns:1fr;gap:12px;margin-top:10px;}
.fitvala-action-box{border:1px solid var(--fv-border);border-radius:14px;padding:14px;background:var(--fv-surface);}
.fitvala-action-title{font-weight:700;margin-bottom:6px;}
@media (min-width:768px){.fitvala-action-split{grid-template-columns:1fr 1fr;}}



/* ============================
   Native-inspired polish (Option A)
   ============================ */

.fitvala-shell{
  font-family: ui-sans-serif, system-ui, -apple-system, "SF Pro Display","SF Pro Text","Segoe UI", Roboto, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: var(--fv-bg, #F6F7F9);
}

.fitvala-page{
  max-width: 1180px;
  margin: 0 auto;
  padding: 18px 14px 28px;
}

@media (min-width: 1024px){
  .fitvala-page{ padding: 24px 18px 36px; }
}

.fitvala-card{
  background: #fff;
  border: 1px solid rgba(15,15,15,.06);
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(15,15,15,.06);
}

.fitvala-card-h h2, .fitvala-card-h h3{
  letter-spacing: -0.02em;
}

.fitvala-muted{
  color: rgba(15,15,15,.55);
}

/* ------------------------------------------------------------------
   Apple-grade 7-day date strip (Meals / Workouts)
   ------------------------------------------------------------------ */
.fv-datebar{
  position: sticky;
  top: 0;
  z-index: 20;
  background: #fff;
  padding: 12px 0 14px;
  margin: 6px 0 14px;
  border-bottom: 1px solid rgba(15,15,15,.06);
}
.fv-datebar__top{
  display:flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 0 2px 10px;
}
.fv-datebar__today{ display:flex; align-items: baseline; gap: 8px; }
.fv-datebar__label{
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(15,15,15,.55);
  font-weight: 800;
}
.fv-datebar__value{ font-weight: 800; letter-spacing: -0.02em; }
.fv-datebar__tabs{
  display:flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
  -webkit-overflow-scrolling: touch;
}
.fv-date-tab{
  min-width: 64px;
  flex: 0 0 auto;
  display:flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 16px;
  border: 1px solid rgba(15,15,15,.08);
  background: rgba(15,15,15,.02);
  text-decoration: none;
  color: rgba(15,15,15,.86);
}
.fv-date-tab__dow{ font-size: 12px; font-weight: 800; opacity: .75; }
.fv-date-tab__dom{ font-size: 16px; font-weight: 900; letter-spacing: -0.02em; }
.fv-date-tab.is-active{
  background: rgba(25,167,142,.10);
  border-color: rgba(25,167,142,.30);
}

@media (max-width: 520px){
  .fv-datebar{ margin-left: -2px; margin-right: -2px; }
  .fv-date-tab{ min-width: 58px; padding: 10px 10px; }
}

.fitvala-btn{
  border-radius: 14px;
  font-weight: 600;
  letter-spacing: -0.01em;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease, opacity .12s ease;
}

.fitvala-btn:active{ transform: scale(.98); }

.fitvala-btn--primary{
  box-shadow: 0 10px 18px rgba(40,199,111,.20);
}

.fitvala-btn--ghost{
  background: rgba(15,15,15,.03);
  border-color: rgba(15,15,15,.06);
}

.fitvala-btn--ghost:hover{
  background: rgba(15,15,15,.05);
}

.fitvala-table{
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
}

.fitvala-table th{
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: rgba(15,15,15,.55);
  background: rgba(15,15,15,.02);
}

.fitvala-table th, .fitvala-table td{
  border-bottom: 1px solid rgba(15,15,15,.06);
  padding: 12px 12px;
  vertical-align: top;
}

.fitvala-table tr:last-child td{ border-bottom: 0; }

.fv-cell-plan{
  font-size: 13px;
  line-height: 1.35;
  color: rgba(15,15,15,.78);
  max-width: 320px;
}

.fitvala-tabs{
  gap: 8px;
  margin-top: 12px;
  margin-bottom: 14px;
}

.fitvala-tab{
  border-radius: 999px;
  padding: 8px 12px;
  background: rgba(15,15,15,.03);
  border: 1px solid rgba(15,15,15,.06);
  color: rgba(15,15,15,.65);
  font-weight: 600;
}

.fitvala-tab.is-active{
  background: #fff;
  color: rgba(15,15,15,.9);
  box-shadow: 0 10px 18px rgba(15,15,15,.06);
}

.fitvala-snap-card{
  border-radius: 18px;
  border: 1px solid rgba(15,15,15,.06);
  box-shadow: 0 12px 26px rgba(15,15,15,.05);
  background: #fff;
}

.fv-tick-row{
  padding: 10px 10px;
  border-radius: 14px;
  border: 1px solid rgba(15,15,15,.06);
  background: rgba(15,15,15,.015);
  transition: background .12s ease, border-color .12s ease;
}

.fv-tick-row:hover{
  background: rgba(15,15,15,.03);
  border-color: rgba(15,15,15,.10);
}

.fv-tick-label{
  font-size: 14px;
  font-weight: 700;
  color: rgba(15,15,15,.88);
}

.fv-tick-sub{
  display: block;
  margin-left: 28px;
  margin-top: 2px;
  font-size: 12.5px;
  color: rgba(15,15,15,.58);
}

.fv-dot{
  display:inline-block;
  margin: 0 6px;
  color: rgba(15,15,15,.35);
}

.fv-workout-meta{
  margin-top: 10px;
  margin-bottom: 8px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(15,15,15,.06);
  background: rgba(15,15,15,.015);
}

.fv-workout-name{
  font-weight: 800;
  letter-spacing: -0.02em;
}

.fv-wk-card{
  border-radius: 18px;
  border: 1px solid rgba(15,15,15,.06);
  background: #fff;
  box-shadow: 0 12px 26px rgba(15,15,15,.05);
}

.fv-wk-thumb{
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(40,199,111,.18), rgba(255,138,64,.12));
}

.fitvala-today__wrap{
  gap: 16px;
}

@media (min-width: 1100px){
  .fitvala-today__wrap{
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    align-items: start;
  }
}


.fitvala-snap-card:hover{transform:translateY(-2px); box-shadow:0 18px 54px rgba(2,6,23,.08);} 

circle.fv-c-prog{transition:stroke-dashoffset .6s cubic-bezier(.2,.8,.2,1);} 

@keyframes fv-pop{0%{transform:scale(.9);} 60%{transform:scale(1.06);} 100%{transform:scale(1);}}
.fv-tick-input:checked + .fv-tick-ui{ animation:fv-pop .22s ease-out; }
.fv-tick-input:checked + .fv-tick-ui:after{ animation:fv-pop .22s ease-out; }

/* Option A: calmer premium button feel */
.fitvala-btn{border-radius:14px; padding:10px 14px; font-weight:800; letter-spacing:.1px;}
.fitvala-btn--primary{box-shadow:0 12px 28px rgba(40,199,111,.18);}
.fitvala-btn--primary:hover{transform:translateY(-1px); box-shadow:0 16px 36px rgba(40,199,111,.22);}
.fitvala-btn--ghost{background:rgba(2,6,23,.02);}
.fitvala-btn--ghost:hover{background:rgba(2,6,23,.04);}

.fv-target-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.fv-target-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(2,6,23,.08);background:rgba(255,255,255,.8);box-shadow:0 8px 20px rgba(2,6,23,.04);font-size:12px;font-weight:800;color:var(--fv-text);}


/* --- Gamification Layer (Option A) --- */
.fv-score{margin:10px 0 14px;padding:14px 16px;border:1px solid rgba(15,15,15,.08);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(15,15,15,.06);}
.fv-score__val{font-size:34px;line-height:1;font-weight:800;letter-spacing:-0.02em;color:var(--fv-text,#0f0f0f);transition:transform .18s ease, color .18s ease;}
.fv-score__val.is-80{color:var(--fv-green,#28C76F);}
.fv-score__val.is-100{color:#b8860b;}
.fv-score__label{margin-top:4px;font-weight:700;color:var(--fv-text,#0f0f0f);}
.fv-score__sub{margin-top:2px;font-size:12px;}

.fv-toast{position:relative;}
.fv-toast__item{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;background:#0f0f0f;color:#fff;font-weight:600;box-shadow:0 10px 28px rgba(15,15,15,.14);opacity:0;transform:translateY(-6px);transition:opacity .18s ease, transform .18s ease;margin:8px 0;}
.fv-toast__item.is-in{opacity:1;transform:translateY(0);}

circle.fv-c-prog.fv-pulse{animation:fvPulse .65s ease;}
@keyframes fvPulse{0%{filter:drop-shadow(0 0 0 rgba(40,199,111,0));}50%{filter:drop-shadow(0 0 10px rgba(40,199,111,.45));}100%{filter:drop-shadow(0 0 0 rgba(40,199,111,0));}}

.fv-confetti{position:absolute;left:0;top:0;right:0;height:0;pointer-events:none;}
.fv-confetti__p{position:absolute;top:-8px;width:8px;height:14px;border-radius:3px;background:rgba(40,199,111,.9);opacity:0;transform:translateY(-8px) rotate(0deg);}
.fv-confetti.is-on .fv-confetti__p{opacity:1;animation:fvConfetti 1.8s ease forwards;}
.fv-confetti__p:nth-child(3n){background:rgba(255,138,64,.9);}
.fv-confetti__p:nth-child(4n){background:rgba(15,15,15,.45);}
@keyframes fvConfetti{0%{transform:translateY(-10px) rotate(0deg);}100%{transform:translateY(260px) rotate(240deg);opacity:0;}}
.fv-confetti__p:nth-child(1){left:6%;}
.fv-confetti__p:nth-child(2){left:12%;}
.fv-confetti__p:nth-child(3){left:18%;}
.fv-confetti__p:nth-child(4){left:24%;}
.fv-confetti__p:nth-child(5){left:30%;}
.fv-confetti__p:nth-child(6){left:36%;}
.fv-confetti__p:nth-child(7){left:42%;}
.fv-confetti__p:nth-child(8){left:48%;}
.fv-confetti__p:nth-child(9){left:54%;}
.fv-confetti__p:nth-child(10){left:60%;}
.fv-confetti__p:nth-child(11){left:66%;}
.fv-confetti__p:nth-child(12){left:72%;}
.fv-confetti__p:nth-child(13){left:78%;}
.fv-confetti__p:nth-child(14){left:84%;}
.fv-confetti__p:nth-child(15){left:90%;}
.fv-confetti__p:nth-child(16){left:10%;}
.fv-confetti__p:nth-child(17){left:22%;}
.fv-confetti__p:nth-child(18){left:34%;}
.fv-confetti__p:nth-child(19){left:46%;}
.fv-confetti__p:nth-child(20){left:58%;}
.fv-confetti__p:nth-child(21){left:70%;}
.fv-confetti__p:nth-child(22){left:82%;}

.fv-tick-row{transition:transform .16s ease, box-shadow .16s ease;}
.fv-tick-row:has(.fv-tick-input:checked){transform:translateX(2px);}


/* ===== v1.9.0 Dashboard Redesign (competitor-inspired) ===== */
:root{
  --fv-primary: #28C76F;
  --fv-accent: #FF8A40;
  --fv-bg: #F6F7FA;
  --fv-text: #0F0F0F;
  --fv-card: #FFFFFF;
  --fv-border: rgba(15,15,15,0.08);
  --fv-shadow: 0 10px 28px rgba(15,15,15,0.10);
  --fv-shadow-soft: 0 10px 30px rgba(15,15,15,0.10);

  --fv-ring-nutrition: var(--fv-primary);
  --fv-ring-activity: #00CFE8;
  --fv-ring-habits: var(--fv-accent);
  --fv-ring-consistency: #7367F0;
}

.fv-app{ background: var(--fv-bg); }
.fv-shell{ max-width: 1180px; margin: 0 auto; padding: 18px 16px 90px; }
@media (max-width: 420px){
  .fv-shell{ padding-left: 12px; padding-right: 12px; }
}
.fv-topbar{ display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom: 14px; }
.fv-topbar__left{ display:flex; align-items:center; gap:10px; }
.fv-brand{ display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius: 12px; background: rgba(255,255,255,0.9); border:1px solid var(--fv-border); box-shadow: 0 6px 18px rgba(15,15,15,0.06); }
.fv-brand__logo{ width:22px; height:22px; object-fit:contain; display:block; }
.fv-title{ font-size: 22px; font-weight: 800; color: var(--fv-text); }
.fv-subtitle{ color: rgba(15,15,15,0.65); font-size: 13px; margin-top: 3px; }

.fv-chip{ display:inline-flex; align-items:center; gap:8px; padding:8px 10px; border:1px solid var(--fv-border); border-radius: 999px; background: rgba(255,255,255,0.7); font-weight: 700; font-size: 12px; color: var(--fv-text); text-decoration:none; }
.fv-chip:hover{ box-shadow: var(--fv-shadow-soft); }

.fv-today-grid{ display:grid; grid-template-columns: 360px 1fr; gap: 14px; align-items:start; }
@media (max-width: 980px){
  .fv-today-grid{ grid-template-columns: 1fr; }
}

.fv-left{ display:flex; flex-direction:column; gap: 12px; }
.fv-right{ display:flex; flex-direction:column; gap: 12px; }

.fv-card{ background: var(--fv-card); border:1px solid var(--fv-border); border-radius: 18px; box-shadow: var(--fv-shadow-soft); padding: 14px; }
.fv-card__head{ display:flex; align-items:flex-start; justify-content:space-between; gap: 12px; margin-bottom: 10px; }
.fv-card__title{ font-size: 15px; font-weight: 800; color: var(--fv-text); }
.fv-card__sub{ font-size: 12px; color: rgba(15,15,15,0.65); }
.fv-muted{ color: rgba(15,15,15,0.62); font-size: 12px; }
.fv-dotsep{ margin: 0 6px; color: rgba(15,15,15,0.35); }

.fv-score-pill{ min-width: 64px; text-align:center; padding: 10px 10px; border-radius: 14px; background: rgba(40,199,111,0.12); color: var(--fv-primary); font-weight: 900; font-size: 16px; }

.fv-rings-row{ display:grid; grid-template-columns: 160px 1fr; gap: 12px; align-items:center; }
@media (max-width: 980px){
  .fv-rings-row{ grid-template-columns: 1fr; }
  .fv-score-pill{ font-size: 18px; }
}
.fv-rings-visual{ display:flex; align-items:center; justify-content:center; }
.fv-rings-svg{ width: 160px; height: 160px; }
@media (max-width: 980px){
  .fv-rings-svg{ width: 190px; height: 190px; }
}

.fv-ring-bg{ fill:none; stroke: rgba(15,15,15,0.08); stroke-width: 10; }
.fv-ring{ fill:none; stroke: var(--fv-ring-color); stroke-width: 10; stroke-linecap: round; transform: rotate(-90deg); transform-origin: 70px 70px; transition: stroke-dashoffset 700ms ease; }

.fv-rings-legend{ display:flex; flex-direction:column; gap: 8px; }
.fv-legend-row{ display:grid; grid-template-columns: 12px 1fr auto; align-items:center; gap: 10px; font-size: 13px; }
.fv-legend-row strong{ font-weight: 900; }
.fv-legend-sub{ grid-column: 2 / span 2; font-size: 12px; color: rgba(15,15,15,0.60); margin-left: 22px; }
.fv-dot{ width:10px; height:10px; border-radius: 999px; display:inline-block; }
.fv-dot--nutrition{ background: var(--fv-primary); }
.fv-dot--activity{ background: #00CFE8; }
.fv-dot--habits{ background: var(--fv-accent); }
.fv-dot--consistency{ background: #7367F0; }

.fv-badge{ display:inline-flex; padding: 6px 10px; border-radius: 999px; background: rgba(255,138,64,0.14); color: #C85A1E; font-weight: 900; font-size: 12px; }
.fv-streakline{ display:flex; align-items:center; gap: 10px; padding-top: 10px; border-top: 1px dashed rgba(15,15,15,0.12); }

.fv-section{ background: transparent; }
.fv-section__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin: 6px 0 10px; }
.fv-h2{ font-size: 18px; font-weight: 900; }

.fv-plan-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 980px){ .fv-plan-grid{ grid-template-columns: 1fr; } }

.fv-plan-card{ padding: 14px; }
.fv-actions-row{ display:flex; gap:10px; margin-top: 12px; flex-wrap:wrap; }

.fv-btn{ display:inline-flex; align-items:center; justify-content:center; gap: 8px; padding: 11px 14px; border-radius: 14px; border: 1px solid transparent; font-weight: 900; text-decoration:none; cursor:pointer; }
.fv-btn--primary{ background: var(--fv-primary); color: #fff; box-shadow: 0 10px 22px rgba(40,199,111,0.22); }
.fv-btn--primary:hover{ filter: brightness(0.98); }
.fv-btn--ghost{ background: #fff; border-color: var(--fv-border); color: var(--fv-text); }
.fv-btn--ghost:hover{ box-shadow: var(--fv-shadow-soft); }

.fv-ticks{ display:flex; flex-direction:column; gap: 10px; margin-top: 8px; }
.fv-tick{ display:flex; align-items:flex-start; gap: 10px; padding: 10px 10px; border: 1px solid rgba(15,15,15,0.08); border-radius: 14px; background: rgba(246,247,250,0.55); }
.fv-tick__input{ position:absolute; opacity:0; pointer-events:none; }
.fv-tick__ui{ width: 22px; height: 22px; border-radius: 8px; border: 2px solid rgba(15,15,15,0.20); background:#fff; flex:0 0 auto; margin-top: 2px; }
.fv-tick__main{ display:flex; flex-direction:column; gap: 2px; min-width:0; }
.fv-tick__label{ font-weight: 900; font-size: 13px; color: var(--fv-text); }
.fv-tick__sub{ font-size: 12px; color: rgba(15,15,15,0.62); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fv-tick input[type="checkbox"]:checked + .fv-tick__ui{ background: rgba(40,199,111,0.16); border-color: var(--fv-primary); box-shadow: inset 0 0 0 6px var(--fv-primary); }

.fv-workout-hero{ padding: 10px 12px; border: 1px solid rgba(15,15,15,0.08); border-radius: 14px; background: rgba(255,255,255,0.9); margin-top: 8px; }
.fv-workout-hero__title{ font-weight: 900; }
.fv-divider{ height:1px; background: rgba(15,15,15,0.08); margin: 14px 0; border-radius:999px; }

.fv-habits-grid{ display:grid; grid-template-columns: 1fr; gap: 10px; }
.fv-habits-steps{ display:flex; gap: 10px; align-items:flex-end; }
.fv-habits-steps .fv-field{ flex: 1; }
.fv-habits-water{ display:flex; align-items:flex-end; justify-content:space-between; gap: 10px; }
.fv-field span{ display:block; font-size: 12px; font-weight: 800; color: rgba(15,15,15,0.70); margin-bottom: 6px; }
.fv-input{ width:100%; padding: 11px 12px; border-radius: 14px; border:1px solid rgba(15,15,15,0.10); background:#fff; outline:none; font-weight: 800; }
.fv-input:focus{ border-color: rgba(40,199,111,0.55); box-shadow: 0 0 0 4px rgba(40,199,111,0.16); }

.fv-water-row{ display:flex; align-items:baseline; gap: 6px; }
.fv-water-actions{ display:flex; gap: 8px; }

.fv-card--progress .fv-toggle{ display:flex; border:1px solid rgba(15,15,15,0.10); border-radius: 999px; overflow:hidden; background:#fff; }
.fv-toggle__btn{ border:0; background: transparent; padding: 8px 10px; font-weight: 900; cursor:pointer; color: rgba(15,15,15,0.65); }
.fv-toggle__btn.is-active{ background: rgba(40,199,111,0.14); color: var(--fv-primary); }

.fv-bars{ display:flex; align-items:flex-end; gap: 8px; height: 120px; padding: 10px 6px 4px; }
.fv-bar{ flex: 1; background: rgba(15,15,15,0.06); border-radius: 999px; overflow:hidden; }
.fv-bar span{ display:block; width:100%; height: 30%; background: linear-gradient(180deg, rgba(40,199,111,1), rgba(255,138,64,0.85)); border-radius: 999px; transition: height 400ms ease; }

.fv-banner{ border-radius: 18px; padding: 14px; border:1px solid rgba(15,15,15,0.08); box-shadow: var(--fv-shadow-soft); margin-top: 10px; }
.fv-banner__title{ font-weight: 900; }
.fv-banner__sub{ margin-top: 4px; color: rgba(15,15,15,0.70); }
.fv-banner--risk{ background: rgba(255,138,64,0.14); }
.fv-banner--complete{ background: rgba(40,199,111,0.14); }

.fv-links{ margin-top: 10px; font-size: 12px; }
.fv-link{ color: var(--fv-primary); font-weight: 900; text-decoration:none; }
.fv-link:hover{ text-decoration: underline; }

.fv-coach-fab{
  position: fixed; right: 18px; bottom: 96px;
  background: linear-gradient(135deg, var(--fv-primary), var(--fv-accent));
  color:#fff; padding: 12px 14px; border-radius: 999px;
  font-weight: 900; text-decoration:none; box-shadow: 0 14px 28px rgba(15,15,15,0.18);
  z-index: 9999;
}
.fv-coach-fab:hover{ filter: brightness(0.98); transform: translateY(-1px); }


/* Workout (Bodyspace-style) */
.fv-workout-list{ display:flex; flex-direction:column; gap: 14px; }
.fv-workout-phase__title{ font-weight: 900; margin-bottom: 8px; }
.fv-workout-phase__items{ display:flex; flex-direction:column; gap: 10px; }
.fv-workout-item{ border:1px solid rgba(15,15,15,0.08); border-radius: 14px; padding: 12px; background: rgba(246,247,250,0.55); }
.fv-workout-item__top{ display:flex; align-items:flex-start; justify-content:space-between; gap: 10px; }
.fv-workout-item__name{ font-weight: 900; }
.fv-workout-item__meta{ display:flex; flex-wrap:wrap; gap: 8px; color: rgba(15,15,15,0.65); font-size: 12px; font-weight: 800; }

/* Meals table responsiveness */
.fv-table-scroll{ overflow:auto; -webkit-overflow-scrolling:touch; border-radius: 18px; }
.fv-table-scroll table{ min-width: 980px; }
@media (max-width: 980px){
  .fv-table-scroll table{ min-width: 760px; }
}


/* Guest brand */
.fv-guest-brand{margin-bottom:14px}
.fv-guest-logo{max-width:220px;height:auto;display:block}
@media (max-width:520px){.fv-guest-logo{max-width:180px}}

/* Tables */
.fv-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.fv-table{min-width:780px}
@media (max-width:900px){.fv-table{min-width:720px}}

.fitvala-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.fitvala-table{min-width:900px}
@media (max-width:900px){.fitvala-table{min-width:760px}}

.fitvala-nav__brand{display:flex;align-items:center;gap:10px}
.fitvala-nav__logo{width:26px;height:26px;border-radius:8px}


/* --- Dashboard v1.11 (Indian BMI goals) --- */
.fv-score{ font-size:44px; font-weight:800; line-height:1; margin-top:6px; }
.fv-rings-wrap{ display:flex; flex-direction:column; gap:14px; margin-top:14px; }
.fv-rings{ position:relative; width:180px; height:180px; margin:0 auto; }
.fv-ring{ position:absolute; top:0; left:0; width:180px; height:180px; transform: rotate(-90deg); }
.fv-ring-bg{ fill:none; stroke: rgba(15,23,42,.08); stroke-width:10; }
.fv-ring-st{ fill:none; stroke-linecap:round; stroke-width:10; stroke-dasharray: 999; stroke-dashoffset: 999; transition: stroke-dashoffset 250ms ease; }
.fv-ring-n{ stroke: var(--fv-ring-nutrition); }
.fv-ring-a{ stroke: var(--fv-ring-activity); stroke-width:10; }
.fv-ring-h{ stroke: var(--fv-ring-habits); stroke-width:10; }
.fv-ring-c{ stroke: var(--fv-ring-consistency); stroke-width:10; }

.fv-rings-legend{ display:flex; flex-direction:column; gap:8px; font-size:13px; color:var(--fv-text); }
.fv-dot{ display:inline-block; width:10px; height:10px; border-radius:999px; margin-right:8px; vertical-align:middle; }
.fv-dot.n{ background: var(--fv-ring-nutrition); }
.fv-dot.a{ background: var(--fv-ring-activity); }
.fv-dot.h{ background: var(--fv-ring-habits); }
.fv-dot.c{ background: var(--fv-ring-consistency); }

.fv-goal-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:10px; }
.fv-kpi{ font-size:18px; font-weight:800; }

.fv-checklist{ display:flex; flex-direction:column; gap:10px; }
.fv-check{ display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border:1px solid var(--fv-border); border-radius:14px; background: rgba(255,255,255,.7); }
.fv-check input{ margin-top:4px; width:18px; height:18px; accent-color: var(--fv-green); }

.fv-fab{ position:fixed; right:16px; bottom:92px; z-index:9999; background: linear-gradient(90deg,var(--fv-green),var(--fv-orange)); color:#fff; padding:12px 16px; border-radius:999px; font-weight:800; text-decoration:none; box-shadow: var(--fv-shadow); }
@media(max-width: 980px){
  .fv-rings{ width:160px; height:160px; }
  .fv-ring{ width:160px; height:160px; }
  .fv-score{ font-size:38px; }
  .fv-goal-grid{ grid-template-columns:1fr; }
}

/* =============================
   Auth pages (login/register) polish
   ============================= */
.fv-auth,
body.page-template-default .fv-auth {
  max-width: 980px;
  margin: 0 auto;
}

/* Generic styling for WordPress login/register forms when they appear on pages */
body.page-template-default form#loginform,
body.page-template-default form#registerform,
body.page-template-default .pmpro_login_wrap form,
body.page-template-default .pmpro_member_profile_edit_wrap form {
  max-width: 520px;
  margin: 0 auto;
}

body.page-template-default form#loginform input[type="text"],
body.page-template-default form#loginform input[type="password"],
body.page-template-default form#loginform input[type="email"],
body.page-template-default form#registerform input[type="text"],
body.page-template-default form#registerform input[type="password"],
body.page-template-default form#registerform input[type="email"],
.fv-auth input[type="text"],
.fv-auth input[type="password"],
.fv-auth input[type="email"],
.fv-auth select {
  width: 100% !important;
  height: 44px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,0.12);
  font-size: 16px;
  line-height: 1.2;
}

body.page-template-default form#loginform input[type="submit"],
body.page-template-default form#registerform input[type="submit"],
.fv-auth button,
.fv-auth .button,
.fv-auth input.button {
  appearance: none;
  border: 0;
  border-radius: 14px;
  padding: 12px 16px;
  font-weight: 700;
  background: #28C76F;
  color: #fff;
  cursor: pointer;
}

body.page-template-default form#loginform input[type="submit"]:hover,
body.page-template-default form#registerform input[type="submit"]:hover,
.fv-auth button:hover,
.fv-auth .button:hover {
  filter: brightness(0.97);
}

/* Keep floating actions clickable on all layouts */
.fv-fab-stack,
.fv-coach-fab {
  z-index: 999999;
  pointer-events: auto;
}


/* --- Concentric Rings (SVG) --- */
.fitvala-concentric-svg circle{ fill:none; }
.fv-ring-bg{ stroke: rgba(15,23,42,.10); stroke-width:10; }
.fv-c-prog{ stroke-width:10; stroke-linecap:round; transform:rotate(-90deg); transform-origin:60px 60px; transition:stroke-dashoffset .55s ease; }
.fv-c-prog[data-ring="nutrition"]{ stroke: var(--fv-green); }
.fv-c-prog[data-ring="activity"]{ stroke: #3b82f6; }
.fv-c-prog[data-ring="habits"]{ stroke: var(--fv-orange); }
.fv-c-prog[data-ring="consistency"]{ stroke: #8b5cf6; }
@media (min-width: 1024px){
  .fitvala-concentric-svg{ width:200px; height:200px; }
}
@media (max-width: 480px){
  .fitvala-concentric-svg{ width:240px; height:240px; }
}
/* Ring pulse */
.fitvala-concentric-svg.fv-ring-pulse{ filter: drop-shadow(0 10px 18px rgba(15,23,42,.10)); }
circle.fv-c-prog.fv-pulse{ filter: drop-shadow(0 8px 14px rgba(15,23,42,.16)); }


/* --- AI Coach Bottom Drawer --- */
.fv-fab{ position:fixed; right:18px; bottom:18px; z-index:9998; background:var(--fv-green); color:#fff; border-radius:999px; padding:12px 14px; font-weight:800; box-shadow:0 18px 40px rgba(2,6,23,.22); text-decoration:none; }
.fv-fab:hover{ filter:brightness(.98); }
.fv-ai-backdrop{ position:fixed; inset:0; background:rgba(2,6,23,.45); opacity:0; pointer-events:none; transition:opacity .18s ease; z-index:9997; }
.fv-ai-drawer{ position:fixed; left:0; right:0; bottom:-100%; background:#fff; border-top-left-radius:18px; border-top-right-radius:18px; box-shadow:0 -18px 60px rgba(2,6,23,.22); z-index:9999; transition:transform .22s ease, bottom .22s ease; max-height:78vh; display:flex; flex-direction:column; }
.fv-ai-drawer.open{ bottom:0; }
.fv-ai-backdrop.open{ opacity:1; pointer-events:auto; }
.fv-ai-h{ display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border-bottom:1px solid var(--fv-border); }
.fv-ai-title{ font-weight:900; }
.fv-ai-close{ background:transparent; border:0; font-size:20px; line-height:1; cursor:pointer; padding:6px 10px; }
.fv-ai-body{ padding:12px 16px; overflow:auto; }
.fv-ai-msg{ display:flex; gap:10px; margin:10px 0; }
.fv-ai-bubble{ padding:10px 12px; border-radius:14px; max-width:92%; font-size:14px; line-height:1.35; }
.fv-ai-msg.user{ justify-content:flex-end; }
.fv-ai-msg.user .fv-ai-bubble{ background:#111827; color:#fff; border-bottom-right-radius:6px; }
.fv-ai-msg.bot .fv-ai-bubble{ background:#f3f4f6; color:#111827; border-bottom-left-radius:6px; }
.fv-ai-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 10px; }
.fv-ai-chip{ background:#f3f4f6; border:1px solid #e5e7eb; border-radius:999px; padding:8px 10px; font-size:13px; cursor:pointer; }
.fv-ai-f{ display:flex; gap:10px; padding:12px 16px; border-top:1px solid var(--fv-border); }
.fv-ai-in{ flex:1; border:1px solid var(--fv-border); border-radius:12px; padding:10px 12px; font-size:14px; }
.fv-ai-send{ background:var(--fv-green); color:#fff; border:0; border-radius:12px; padding:10px 14px; font-weight:900; cursor:pointer; }


.fitvala-concentric-svg .fv-ring-center{fill:#fff;}

/* Rings SVG safety */
.fv-rings circle,.fv-c-bg,.fv-c-prog{fill:none;}


/* AI Coach Drawer */
.fv-coach-overlay{
  position:fixed; inset:0; background:rgba(15,15,15,.35);
  z-index:9998;
}
.fv-coach-drawer{
  position:fixed; right:18px; bottom:18px;
  width:min(420px, calc(100vw - 36px));
  max-height:min(70vh, 560px);
  background:#fff;
  border:1px solid rgba(15,15,15,.10);
  border-radius:18px;
  box-shadow:0 18px 60px rgba(15,15,15,.18);
  z-index:9999;
  display:flex;
  flex-direction:column;
  transform:translateY(12px);
  opacity:0;
  pointer-events:none;
  transition:transform .18s ease, opacity .18s ease;
}
.fv-coach-drawer.is-open{
  transform:translateY(0);
  opacity:1;
  pointer-events:auto;
}
.fv-coach-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 14px 10px 14px;
  border-bottom:1px solid rgba(15,15,15,.08);
}
.fv-coach-title{font-weight:800; font-size:16px; letter-spacing:.2px;}
.fv-coach-sub{font-size:12px; color:#667085; margin-top:2px;}
.fv-coach-close{
  width:34px; height:34px; border-radius:10px;
  border:1px solid rgba(15,15,15,.10); background:#fff;
  font-size:20px; line-height:1; cursor:pointer;
}
.fv-coach-body{
  padding:12px 14px;
  overflow:auto;
  display:flex; flex-direction:column; gap:10px;
}
.fv-coach-msg{
  padding:10px 12px;
  border-radius:14px;
  font-size:14px;
  line-height:1.35;
  border:1px solid rgba(15,15,15,.08);
}
.fv-coach-msg--ai{background:#F8FAFC;}
.fv-coach-msg--me{background:#ECFDF3; align-self:flex-end;}
.fv-coach-chips{
  display:flex; flex-wrap:wrap; gap:8px;
  padding:0 14px 12px 14px;
}
.fv-chip{
  border:1px solid rgba(15,15,15,.10);
  background:#fff;
  border-radius:999px;
  padding:7px 10px;
  font-size:12px;
  cursor:pointer;
}
.fv-coach-input{
  display:flex; gap:10px;
  padding:12px 14px 14px 14px;
  border-top:1px solid rgba(15,15,15,.08);
}
.fv-coach-input input{
  flex:1;
  border:1px solid rgba(15,15,15,.12);
  border-radius:12px;
  padding:10px 12px;
  outline:none;
}

/* v1 Meals - mobile-first card UI */
.fv-meal-cards{display:flex;flex-direction:column;gap:12px;margin-top:12px;}
.fv-meal-card{border:1px solid rgba(15,15,15,.10);border-radius:16px;padding:12px;background:#fff;}
.fv-meal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.fv-meal-label{font-size:12px;letter-spacing:.02em;color:rgba(15,15,15,.60);text-transform:uppercase;}
.fv-meal-title{font-size:15px;font-weight:650;margin-top:2px;}
.fv-meal-body{margin-top:10px;}
.fv-meal-items{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;}
.fv-meal-items li{display:flex;justify-content:space-between;gap:10px;padding:10px 10px;border-radius:12px;background:rgba(15,15,15,.03);}
.fv-mi-name{font-size:14px;}
.fv-mi-qty{font-size:13px;color:rgba(15,15,15,.65);white-space:nowrap;}
.fv-meal-actions{margin-top:10px;display:flex;justify-content:flex-end;}

/* Progress (premium, non-table KPI cards) */
.fv-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media (min-width:960px){.fv-kpi-grid{grid-template-columns:1fr 1fr 1fr;}}
.fv-kpi-card{border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:12px;background:#fff;}

/* v1 Workouts - icon list */
.fv-wk-grid--icon .fv-wk-card{display:flex;gap:12px;align-items:flex-start;}
.fv-wk-icon{width:44px;height:44px;border-radius:12px;background:rgba(15,15,15,.03);display:flex;align-items:center;justify-content:center;flex:0 0 44px;}
.fv-wk-icon img{width:26px;height:26px;}
.fv-wk-cue{margin-top:4px;}

.fv-workout-list--compact{display:flex;flex-direction:column;gap:10px;margin-top:10px;}
.fv-workout-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(15,15,15,.08);border-radius:14px;}
.fv-workout-item__icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;}
.fv-workout-item__icon img{width:22px;height:22px;}
.fv-workout-item__name{flex:1;font-size:14px;font-weight:600;}
.fv-workout-item__meta{font-size:13px;color:rgba(15,15,15,.65);}

/* Guided Session Runner (minimal v1) */
.fv-session-card{border:1px solid rgba(15,15,15,.10);border-radius:18px;padding:14px;background:#fff;}
.fv-session-progress{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:rgba(15,15,15,.55);font-weight:800;margin-bottom:10px;}
.fv-session-title{font-size:18px;font-weight:850;letter-spacing:-0.02em;margin:0 0 8px 0;}
.fv-session-meta{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 10px;}
.fv-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(15,15,15,.10);background:rgba(15,15,15,.02);font-size:12px;font-weight:700;}
.fv-session-howto{font-size:14px;color:rgba(15,15,15,.75);line-height:1.35;margin-top:6px;}
.fv-cue-list{margin:10px 0 0 18px;padding:0;color:rgba(15,15,15,.75);font-size:13px;line-height:1.35;}
.fv-session-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}

/* =========================================================
   v1.12.6: Desktop Top Navigation (hard override)
   - Desktop: show top nav, hide bottom nav
   - Mobile: hide top nav, show bottom nav
   ========================================================= */

.fv-topnav{display:none;}

@media (min-width: 1024px){
  .fv-topnav{display:block;position:sticky;top:0;z-index:1000;margin:0 0 16px 0;padding:0;background:rgba(255,255,255,0.92);backdrop-filter:blur(10px);border:1px solid var(--fv-border);border-radius:18px;box-shadow:var(--fv-shadow);} 
  .fv-topnav__inner{display:flex;align-items:center;gap:16px;padding:10px 14px;}
  .fv-topnav__brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--fv-text);font-weight:900;letter-spacing:-0.02em;}
  .fv-topnav__logo{width:28px;height:28px;border-radius:10px;}
  .fv-topnav__name{font-size:14px;}
  .fv-topnav__links{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
  .fv-topnav__link{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:14px;text-decoration:none;color:var(--fv-muted);font-weight:800;border:1px solid transparent;}
  .fv-topnav__link:hover{background:var(--fv-surface);border-color:var(--fv-border);color:var(--fv-text);} 
  .fv-topnav__link.is-active{background:rgba(255,138,64,.14);border-color:rgba(255,138,64,.25);color:var(--fv-text);} 
  .fv-topnav__actions{margin-left:auto;}
  .fv-topnav__logout{text-decoration:none;font-weight:800;color:var(--fv-muted);padding:8px 12px;border-radius:14px;border:1px solid var(--fv-border);background:var(--fv-card);} 
  .fv-topnav__logout:hover{color:var(--fv-text);} 

  /* Ensure only one navigation paradigm is visible on desktop */
  .fitvala-nav--desktop{display:none !important;}
  .fitvala-nav--mobile{display:none !important;}
  .fitvala-shell{padding-bottom:0 !important;}
}

@media (max-width: 1023.98px){
  .fv-topnav{display:none !important;}
}

/* Responsive tables (Progress) */
@media (max-width: 768px){
  .fitvala-table, .fv-table{display:block; overflow-x:auto; -webkit-overflow-scrolling:touch;}
  .fitvala-table table, .fv-table table{min-width:640px;}
}

/* -------------------------------
   Phase-2 Guided Workout Session
-------------------------------- */
.fv-session .fitvala-card-h{ margin-bottom:12px; }
.fv-session-card{
  border:1px solid var(--fv-border);
  border-radius:16px;
  padding:16px;
  background:var(--fv-card);
  box-shadow:0 8px 24px rgba(2,6,23,.06);
}
.fv-session-top{ display:flex; gap:14px; align-items:flex-start; justify-content:space-between; }
.fv-session-step{ font-size:12px; color:var(--fv-muted); margin-bottom:6px; }
.fv-session-title{ font-size:20px; font-weight:800; letter-spacing:-0.02em; }
.fv-session-meta{ margin-top:6px; color:var(--fv-muted); font-size:13px; }
.fv-session-visual{
  width:76px; height:76px;
  border-radius:18px;
  background:linear-gradient(180deg, rgba(91,140,255,.14), rgba(168,85,247,.10));
  border:1px solid rgba(15,23,42,.06);
  display:flex; align-items:center; justify-content:center;
  flex:0 0 auto;
}
.fv-session-visual img{ width:44px; height:44px; }
.fv-session-phase{ margin-top:12px; font-size:12px; color:var(--fv-muted); }
.fv-session-timer{ margin-top:10px; font-size:34px; font-weight:900; letter-spacing:-0.02em; }
.fv-session-timer[data-kind="rest"]{ font-size:22px; }
.fv-session-actions{ margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; }
@media (max-width: 520px){
  .fv-session-top{ align-items:flex-start; }
  .fv-session-title{ font-size:18px; }
  .fv-session-timer{ font-size:30px; }
}

/* --------------------------------
   PRD: Detail drill-down links
--------------------------------- */
.fv-mi-link{margin-left:auto;font-size:12px;font-weight:700;text-decoration:none;padding:4px 8px;border:1px solid var(--fv-border);border-radius:999px;color:var(--fv-text);background:rgba(0,0,0,.02);}
.fv-mi-link:hover{background:rgba(0,0,0,.04);}
.fv-list{padding-left:18px;margin:0;}



/* Flash toast (Apple-like subtle feedback) */
.fv-flash{
  position: fixed;
  left: 50%;
  bottom: 86px;
  transform: translateX(-50%) translateY(10px);
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(17,17,17,0.86);
  color: #fff;
  font-size: 13px;
  line-height: 1;
  letter-spacing: .2px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
  z-index: 99999;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.fv-flash.is-on{ opacity: 1; transform: translateX(-50%) translateY(0); }
.fv-flash[data-type="error"]{ background: rgba(180,28,28,0.92); }
.fv-flash[data-type="success"]{ background: rgba(18,120,72,0.92); }
