*{box-sizing:border-box}
:root{
  --bg:#07100c;
  --sidebar:#050b08;
  --panel:#0c1710;
  --panel-soft:#101e16;
  --line:rgba(168,255,79,.13);
  --line-strong:rgba(168,255,79,.28);
  --text:#f4f8f3;
  --muted:#7d9183;
  --lime:#a8ff4f;
  --lime-dark:#071006;
}
body{
  margin:0;
  min-height:100vh;
  background:radial-gradient(circle at 72% 0,rgba(168,255,79,.06),transparent 34%),var(--bg);
  color:var(--text);
  font-family:Inter,Arial,sans-serif;
}
button,input{font:inherit}
button{color:inherit}
a{color:inherit;text-decoration:none}
svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.sidebar{
  position:fixed;
  inset:0 auto 0 0;
  width:272px;
  padding:24px 18px 18px;
  background:linear-gradient(180deg,#050b08,#040906);
  border-right:1px solid var(--line);
  display:flex;
  flex-direction:column;
  z-index:80;
}
.sidebar-top{padding:0 8px}
.logo{
  display:flex;
  align-items:center;
  gap:13px;
}
.logo-mark{
  width:50px;
  height:50px;
  border-radius:15px;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#b7ff72,#83dc3d);
  color:var(--lime-dark);
  font-size:18px;
  font-weight:900;
  box-shadow:0 12px 28px rgba(168,255,79,.13);
}
.logo-copy strong,.logo-copy small{display:block}
.logo-copy strong{
  font-size:14px;
  letter-spacing:.055em;
}
.logo-copy small{
  margin-top:4px;
  color:#6f8376;
  font-size:8px;
  letter-spacing:.16em;
}
.member-status{
  margin-top:24px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(168,255,79,.035);
  display:flex;
  align-items:center;
  gap:10px;
}
.status-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--lime);
  box-shadow:0 0 14px rgba(168,255,79,.55);
}
.member-status strong,.member-status small{display:block}
.member-status strong{font-size:9px}
.member-status small{
  margin-top:3px;
  color:#718579;
  font-size:8px;
}

.sidebar-nav{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:28px;
}
.nav-item{
  position:relative;
  width:100%;
  border:0;
  background:transparent;
  border-radius:11px;
  padding:12px 13px;
  display:flex;
  align-items:center;
  gap:12px;
  color:#7f9285;
  font-size:12px;
  font-weight:600;
  text-align:left;
  cursor:pointer;
  transition:.2s ease;
}
.nav-item::before{
  content:"";
  position:absolute;
  left:-18px;
  top:9px;
  bottom:9px;
  width:3px;
  border-radius:0 4px 4px 0;
  background:transparent;
}
.nav-item:hover{
  color:#fff;
  background:rgba(255,255,255,.035);
}
.nav-item.active{
  color:#fff;
  background:linear-gradient(90deg,rgba(168,255,79,.14),rgba(168,255,79,.035));
}
.nav-item.active::before{background:var(--lime)}
.nav-item.active .nav-icon{
  background:var(--lime);
  color:var(--lime-dark);
  border-color:var(--lime);
}
.nav-icon{
  width:34px;
  height:34px;
  border:1px solid rgba(168,255,79,.10);
  border-radius:10px;
  display:grid;
  place-items:center;
  color:#91a398;
  background:#09130d;
  transition:.2s ease;
}
.nav-icon svg{width:17px;height:17px}

.sidebar-bottom{
  margin-top:auto;
  border-top:1px solid var(--line);
  padding-top:16px;
}
.sidebar-user{
  display:grid;
  grid-template-columns:40px 1fr auto;
  align-items:center;
  gap:10px;
  padding:10px;
  border-radius:12px;
  background:#09130d;
  border:1px solid rgba(168,255,79,.08);
}
.user-avatar{
  width:40px;
  height:40px;
  border-radius:11px;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#a8ff4f,#71c432);
  color:#071006;
  font-size:11px;
  font-weight:900;
}
.user-copy strong,.user-copy small{display:block}
.user-copy strong{font-size:10px}
.user-copy small{
  margin-top:3px;
  color:#718579;
  font-size:8px;
}
.user-menu{
  border:0;
  background:transparent;
  color:#718579;
  cursor:pointer;
}
.back-link{
  margin-top:10px;
  height:38px;
  border-radius:9px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  color:#708377;
  font-size:9px;
  transition:.2s;
}
.back-link:hover{
  background:rgba(255,255,255,.035);
  color:#fff;
}
.back-link svg{width:15px;height:15px}

.dashboard-main{
  min-height:100vh;
  margin-left:272px;
}
.topbar{
  position:sticky;
  top:0;
  z-index:50;
  height:76px;
  padding:0 28px;
  display:flex;
  align-items:center;
  gap:18px;
  background:rgba(7,16,12,.84);
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);
}
.mobile-menu{
  display:none;
  width:40px;
  height:40px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#0b1710;
}
.mobile-menu span{
  width:18px;
  height:2px;
  display:block;
  margin:4px auto;
  background:#fff;
}
.topbar-title small,.topbar-title strong{display:block}
.topbar-title small{
  color:#6f8376;
  font-size:8px;
}
.topbar-title strong{
  margin-top:4px;
  font-size:17px;
}
.topbar-search{
  margin-left:auto;
  width:min(380px,36vw);
  height:40px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#0a1510;
  display:flex;
  align-items:center;
  gap:9px;
  color:#627667;
}
.topbar-search svg{width:16px;height:16px}
.topbar-search input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:#fff;
  font-size:10px;
}
.notification-button{
  position:relative;
  width:40px;
  height:40px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#0a1510;
  display:grid;
  place-items:center;
  cursor:pointer;
}
.notification-button svg{width:17px;height:17px}
.notification-button span{
  position:absolute;
  top:8px;
  right:8px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--lime);
}

.view{
  display:none;
  padding:30px;
}
.view.active{
  display:block;
  animation:viewIn .28s ease;
}
@keyframes viewIn{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}
.hello{
  padding:32px;
  border:1px solid var(--line);
  border-radius:17px;
  background:linear-gradient(135deg,#112319,#0a140e);
}
.hello span{
  color:var(--lime);
  font-size:8px;
  letter-spacing:.12em;
}
.hello h1{
  margin:9px 0;
  font-size:34px;
}
.hello p{
  margin:0;
  color:#83968a;
}
.metrics{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin:14px 0;
}
.metrics article,.panel,.cards article{
  border:1px solid var(--line);
  border-radius:13px;
  background:linear-gradient(145deg,#0d1912,#09120d);
  padding:18px;
}
.metrics span,.metrics strong,.metrics small{display:block}
.metrics span{
  color:#748779;
  font-size:8px;
}
.metrics strong{
  margin:7px 0;
  font-size:20px;
}
.metrics small{
  color:#7f9285;
  font-size:8px;
}
.metrics i{
  height:5px;
  display:block;
  overflow:hidden;
  border-radius:5px;
  background:#15251a;
}
.metrics em{
  display:block;
  height:100%;
  background:linear-gradient(90deg,#a8ff4f,#6cae39);
}
.grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.wide{grid-column:1/3}
.panel h2{font-size:15px}
.workout span{
  color:var(--lime);
  font-size:8px;
}
.workout h3{font-size:22px}
.workout p{color:#7f9285}
.workout button,.cards button,.profile-panel button{
  border:0;
  border-radius:8px;
  padding:10px;
  background:var(--lime);
  color:var(--lime-dark);
  font-weight:700;
  cursor:pointer;
}
.bars{
  height:180px;
  display:flex;
  align-items:flex-end;
  gap:10px;
}
.bars i{
  flex:1;
  border-radius:5px 5px 2px 2px;
  background:linear-gradient(#a8ff4f,#5e9c32);
}
.list div{
  display:grid;
  grid-template-columns:1fr 1fr auto;
  padding:12px 0;
  border-top:1px solid rgba(168,255,79,.1);
  font-size:10px;
}
.list span{color:#7e9184}
.list em{
  color:var(--lime);
  font-style:normal;
}
.cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.cards span{
  color:var(--lime);
  font-size:8px;
}
.cards p{color:#849689}
.big{max-width:800px}
.profile-panel{
  max-width:500px;
  text-align:center;
}
.avatar{
  width:70px;
  height:70px;
  border-radius:18px;
  margin:auto;
  display:grid;
  place-items:center;
  background:var(--lime);
  color:var(--lime-dark);
  font-weight:900;
}
.sidebar-backdrop{display:none}

@media(max-width:1000px){
  .sidebar{
    transform:translateX(-100%);
    transition:.25s ease;
  }
  .sidebar.open{transform:none}
  .dashboard-main{margin-left:0}
  .mobile-menu{display:block}
  .sidebar-backdrop.open{
    display:block;
    position:fixed;
    inset:0;
    z-index:70;
    background:rgba(0,0,0,.62);
  }
  .metrics,.cards{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
  .topbar{
    height:68px;
    padding:0 14px;
  }
  .topbar-search{display:none}
  .view{padding:18px}
  .hello{padding:23px}
  .hello h1{font-size:27px}
  .metrics,.cards,.grid{grid-template-columns:1fr}
  .wide{grid-column:auto}
  .list div{
    grid-template-columns:1fr;
    gap:5px;
  }
}
