/* t1035u — Pulsepath FitLife skin: light glass, forest/mint, soft cards */
:root{
  --bg:#F4FBF6; --paper:#FFFFFF; --ink:#14301F; --muted:#5F7A6A; --accent:#1F8F4E;
  --line:rgba(20,48,31,.10); --on-accent:#FFFFFF;
  --display:"Space Grotesk",system-ui,sans-serif;
  --sans:"Outfit",system-ui,sans-serif;
  --radius:24px; --radius-sm:16px; --photo-radius:22px;
  --neon:#2FCE70; --neon2:#5AC8FF; --danger:#FF4D6A;
  --mint:#B8F0D0; --forest:#0E5C34; --leaf:#2F9E5C;
  --shadow:0 10px 28px rgba(20,48,31,.08), 0 2px 6px rgba(20,48,31,.04);
  --shadow-sm:0 6px 16px rgba(20,48,31,.06);
  --pul-dock-h:64px;
  --nav-collapse:0;
}
html,body,.phone{background:var(--bg)!important;color:var(--ink);font-family:var(--sans)}
h1,h2,.huge-num,.stat b,.timer{font-family:var(--display)!important;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.screen{background:
  radial-gradient(90% 50% at 100% -10%, rgba(47,158,92,.10), transparent 55%),
  radial-gradient(70% 40% at 0% 20%, rgba(184,240,208,.45), transparent 50%),
  var(--bg)!important}
.mesh-bg{background:
  radial-gradient(60% 40% at 20% 0%, rgba(47,206,112,.16), transparent 50%),
  radial-gradient(50% 40% at 90% 30%, rgba(90,200,255,.10), transparent 45%),
  var(--bg)!important}

/* Soft glass cards */
.wcard,.rcard{
  border-radius:22px!important;
  border:1px solid rgba(20,48,31,.08)!important;
  background:linear-gradient(180deg, #fff, #F7FCF9)!important;
  box-shadow:var(--shadow)!important;
  clip-path:none;
}
.h-scroll > .wcard{flex:0 0 82%!important; border-radius:24px!important}
.stat{
  border-radius:18px; background:#fff; border:1px solid var(--line); padding:14px 10px;
  box-shadow:var(--shadow-sm);
}
.stat b{font-size:26px; color:var(--accent); text-shadow:none}
.stat:nth-child(1) b{color:#F08A24}
.stat:nth-child(2) b{color:var(--leaf)}
.stat:nth-child(3) b{color:#2F9ED8}
.ring-hud{width:120px;height:120px;border-radius:50%; margin:8px auto;
  background:conic-gradient(var(--neon) calc(var(--p,0)*1%), rgba(20,48,31,.08) 0);
  mask:radial-gradient(farthest-side, transparent calc(100% - 10px), #000 calc(100% - 9px));
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 10px), #000 calc(100% - 9px))}

.large-title{font-family:var(--display);font-size:clamp(30px,8vw,38px);margin:10px 16px 4px;letter-spacing:-.04em;
  text-transform:none; color:var(--ink);
  transition:font-size .2s cubic-bezier(.2,.8,.2,1), letter-spacing .2s;
  transform: scale(calc(1 - var(--nav-collapse) * 0.28)); transform-origin:left top;
  opacity: calc(1 - var(--nav-collapse) * 0.15)}
.large-title.is-compact{font-size:18px}
.sticky-chips{position:sticky; top:calc(var(--safe-t) + 2px); z-index:12; display:flex; gap:8px; padding:6px 14px; overflow:auto; scrollbar-width:none;
  background:linear-gradient(180deg, rgba(244,251,246,.94), transparent);
  opacity: calc(1 - var(--nav-collapse));
  transform: translate3d(0, calc(var(--nav-collapse) * -6px), 0)}
.sticky-chips .chip{border-radius:999px; padding:8px 14px; font-weight:800; font-size:12px; letter-spacing:.02em; text-transform:none;
  background:#fff; border:1px solid var(--line); color:var(--ink); box-shadow:var(--shadow-sm)}
.sticky-chips .chip.on{background:var(--forest); color:#fff; box-shadow:0 8px 20px rgba(14,92,52,.28)}

.cal{display:grid; grid-template-columns:repeat(7,1fr); gap:4px}
.cal i{aspect-ratio:1; border-radius:10px; background:rgba(20,48,31,.04); border:1px solid var(--line)}
.cal i.done{background:color-mix(in srgb,var(--leaf) 45%, #fff); box-shadow:none; color:var(--forest)}
.cal i.on{outline:2px solid var(--accent)}

/* FitLife floating dock + center START */
.phone.pul-skin .tabs{
  padding:0 14px calc(12px + var(--safe-b))!important;
}
.phone.pul-skin .tabs nav{
  position:relative!important;
  display:grid!important; grid-template-columns:1fr 1fr 72px 1fr 1fr; gap:2px; align-items:end;
  min-height:var(--pul-dock-h)!important; padding:8px 10px 8px!important;
  border-radius:28px!important;
  background:rgba(255,255,255,.92)!important;
  border:1px solid rgba(20,48,31,.08)!important;
  box-shadow:0 14px 40px rgba(20,48,31,.14), inset 0 1px 0 rgba(255,255,255,.9)!important;
  backdrop-filter:blur(14px) saturate(1.15)!important; -webkit-backdrop-filter:blur(14px) saturate(1.15)!important;
  overflow:visible!important;
  transform:
    translate3d(0, calc(var(--nav-collapse) * 26px), 0)
    scale(calc(1 - var(--nav-collapse) * 0.40), calc(1 - var(--nav-collapse) * 0.32));
  transform-origin: bottom center;
}
.phone.pul-skin .tabs nav .nav-glow{
  position:absolute; bottom:8px; height:3px; width:28px; left:0; border-radius:999px;
  background:var(--leaf); box-shadow:0 0 10px rgba(47,158,92,.45);
  transition:none; z-index:0; pointer-events:none;
}
.phone.pul-skin .tabs nav button{
  position:relative; z-index:1; appearance:none; border:0; background:transparent!important;
  color:var(--muted)!important; min-height:48px!important; border-radius:16px!important;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  font-size:10px!important; font-weight:800!important; letter-spacing:.04em; text-transform:none;
  transition:color .18s, transform .18s cubic-bezier(.22,1.2,.36,1);
}
.phone.pul-skin .tabs nav button .ico{font-size:18px; line-height:1; transition:transform .22s cubic-bezier(.22,1.2,.36,1), filter .2s}
.phone.pul-skin .tabs nav button .lab{font-size:9px; opacity:.8}
.phone.pul-skin .tabs nav button.on{color:var(--forest)!important}
.phone.pul-skin .tabs nav button.on .ico{transform:translateY(-2px) scale(1.08); filter:drop-shadow(0 4px 10px rgba(47,158,92,.35))}
.phone.pul-skin .tabs nav button.nav-start{
  width:64px; height:64px; margin:0 auto 8px; border-radius:50%!important;
  background:radial-gradient(circle at 35% 30%, #7DFFB0, var(--leaf) 55%, var(--forest))!important;
  color:#04140C!important; font-size:11px!important; font-weight:900!important;
  box-shadow:0 10px 28px rgba(47,158,92,.4), 0 0 0 5px rgba(47,158,92,.12)!important;
  transform:translateY(calc(-18px + var(--nav-collapse,0) * 14px)) scale(calc(1 - var(--nav-collapse,0) * 0.28));
  letter-spacing:.04em;
}
.phone.pul-skin .tabs nav button.nav-start .lab{opacity:calc(1 - var(--nav-collapse,0)); color:#04140C}
.phone.pul-skin .tabs nav button.nav-start.is-session{
  background:conic-gradient(from 0deg, var(--leaf), var(--neon2), var(--leaf))!important;
  animation:pulSpin 2.4s linear infinite;
}
@keyframes pulSpin{to{filter:hue-rotate(18deg)}}
.pul-radial{
  position:fixed; left:50%; bottom:calc(96px + var(--safe-b)); transform:translateX(-50%);
  z-index:60; display:none; gap:10px; padding:12px; border-radius:20px;
  background:#fff; border:1px solid var(--line); box-shadow:var(--shadow);
}
.pul-radial button{appearance:none;border:0;background:rgba(47,158,92,.1);color:var(--forest);padding:10px 12px;border-radius:12px;font-weight:800;font-size:12px}
@media (prefers-reduced-motion: reduce){
  .phone.pul-skin .tabs nav button.nav-start.is-session{animation:none}
  .phone.pul-skin .tabs nav button .ico{transition:none}
}

/* AA */
.phone.pul-skin .tabs nav button{color:#5F7A6A!important}
.phone.pul-skin .tabs nav button.on{color:#0E5C34!important}
.phone.pul-skin .tabs nav button.nav-start{color:#04140C!important}
.phone.pul-skin .large-title{color:#14301F!important}
.phone.pul-skin .v6-strip, .phone.pul-skin .screen{padding-bottom:calc(108px + var(--safe-b))!important}
.phone.pul-skin .tabs nav button.nav-start .lab{color:#04140C!important}
.phone.pul-skin .tabs nav button .lab,
.phone.pul-skin .tabs nav button.on .lab{
  opacity: calc(1 - var(--nav-collapse,0)) !important;
  max-height: calc((1 - var(--nav-collapse,0)) * 16px);
}

/* FitLife home pieces */
.phone.pul-skin .avatar-chip{
  display:inline-flex; align-items:center; gap:10px; padding:6px 12px 6px 6px;
  background:#fff; border:1px solid var(--line); border-radius:999px; box-shadow:var(--shadow-sm)
}
.phone.pul-skin .avatar-chip .av{
  width:36px;height:36px;border-radius:50%; display:grid; place-items:center;
  background:linear-gradient(135deg, var(--mint), var(--leaf)); color:var(--forest); font-weight:900; font-size:12px
}
.phone.pul-skin .badge{
  background:rgba(47,158,92,.12); color:var(--forest); border:1px solid rgba(47,158,92,.2);
  border-radius:999px; padding:6px 10px; font-size:11px; font-weight:800
}
.phone.pul-skin .badge.ink{background:var(--forest); color:#fff}
.phone.pul-skin .hero{
  margin:8px 16px 16px!important; border-radius:28px!important; overflow:hidden;
  box-shadow:var(--shadow); aspect-ratio:16/11!important;
}
.phone.pul-skin .hero .scrim{
  background:linear-gradient(180deg, rgba(14,92,52,.15), rgba(14,92,52,.78))!important
}
.phone.pul-skin .quick-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:10px; padding:0 16px 14px
}
.phone.pul-skin .quick-grid button{
  appearance:none; border:0; background:#fff; border-radius:18px; padding:14px 8px;
  box-shadow:var(--shadow-sm); border:1px solid var(--line); color:var(--forest);
  font-weight:800; font-size:11px; display:flex; flex-direction:column; align-items:center; gap:8px; min-height:76px
}
.phone.pul-skin .quick-grid .qi{
  width:36px;height:36px;border-radius:12px; display:grid; place-items:center;
  background:rgba(47,158,92,.12); font-size:18px
}
.phone.pul-skin .plan-row{
  margin:0 16px 14px; display:flex; gap:12px; align-items:center; padding:10px;
  background:#fff; border-radius:22px; border:1px solid var(--line); box-shadow:var(--shadow-sm); cursor:pointer
}
.phone.pul-skin .plan-row .pic{width:72px;height:72px;border-radius:16px; flex:0 0 auto; aspect-ratio:1}
.phone.pul-skin .achieve{
  margin:0 16px 14px; padding:14px 16px; border-radius:20px;
  background:linear-gradient(135deg, #FFF6D8, #FFE9A8); border:1px solid rgba(200,160,40,.25);
  box-shadow:var(--shadow-sm); font-weight:700; color:#5A4508
}
.phone.pul-skin .btn-primary{background:var(--forest)!important; color:#fff!important; box-shadow:0 10px 24px rgba(14,92,52,.28)}
.phone.pul-skin .chip.on{background:var(--forest)!important; color:#fff!important}
.phone.pul-skin .chart{
  background:linear-gradient(180deg, rgba(47,158,92,.12), transparent)!important;
  border:1px solid var(--line)!important
}
