:root{
    --bg:#FAF9F6; --surface:#FFFFFF; --ink:#17140F; --muted:#8A8378; --line:#EBE7DF;
    --scarlet:#C81E3A; --scarlet-dark:#9C1730; --ember:#FF7A45; --gold:#E8B75D; --success:#2F7A4F; --warn:#B8860B;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  body{font-family:'Inter',sans-serif; background:var(--bg); color:var(--ink); -webkit-font-smoothing:antialiased; overflow-x:hidden;}
  .display{font-family:'Anton',sans-serif; letter-spacing:0.01em; text-transform:uppercase;}
  ::selection{background:var(--scarlet); color:#fff;}
  #app{display:flex; min-height:100vh;}
  .sidebar{width:224px; flex-shrink:0; background:var(--ink); color:#fff; display:flex; flex-direction:column; padding:26px 16px; position:sticky; top:0; height:100vh; overflow-y:auto;}
  .brand{display:flex; align-items:center; gap:10px; margin-bottom:30px; padding:0 6px;}
  .brand-mark{width:28px; height:28px; flex-shrink:0;}
  .brand-name{font-family:'Anton',sans-serif; font-size:19px; letter-spacing:0.03em;}
  .brand-name span{color:var(--scarlet);}
  .nav-item{display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:10px; color:rgba(255,255,255,0.62); font-weight:600; font-size:13.5px; cursor:pointer; transition:all .15s ease; margin-bottom:2px; border:1px solid transparent;}
  .nav-item svg{width:17px; height:17px; flex-shrink:0;}
  .nav-item:hover{color:#fff; background:rgba(255,255,255,0.06);}
  .nav-item.active{color:#fff; background:rgba(200,30,58,0.18); border-color:rgba(200,30,58,0.4);}
  .nav-item.active svg{color:var(--scarlet);}
  .sidebar-foot{margin-top:auto; padding:13px 12px; border-radius:12px; background:rgba(255,255,255,0.05); font-size:11.5px; color:rgba(255,255,255,0.55); line-height:1.5;}
  .sidebar-foot b{color:#fff;}
  .main{flex:1; min-width:0; display:flex; flex-direction:column;}
  .topbar{display:flex; align-items:center; justify-content:space-between; padding:20px 34px; border-bottom:1px solid var(--line); background:var(--surface); position:sticky; top:0; z-index:5;}
  .greeting-eyebrow{font-size:12px; color:var(--muted); font-weight:600; text-transform:uppercase; letter-spacing:.08em;}
  .greeting-title{font-size:21px; font-weight:800; margin-top:2px;}
  .topbar-right{display:flex; align-items:center; gap:16px;}
  .streak-chip{display:flex; align-items:center; gap:7px; background:linear-gradient(135deg,#FFF3EC,#FFE4D4); border:1px solid #FFD3B8; padding:8px 14px; border-radius:999px; font-weight:700; font-size:13.5px; color:var(--scarlet-dark);}
  .avatar{width:36px; height:36px; border-radius:50%; background:var(--scarlet); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px;}
  .content{padding:30px 34px 90px; max-width:1180px;}
  .app-footer{margin-top:36px; padding:18px 0 6px; border-top:1px solid var(--line); text-align:center;}
  .app-footer-credit{font-size:10.5px; font-weight:700; font-style:italic; color:var(--scarlet); margin-bottom:4px;}
  .app-footer-legal{font-size:10.5px; color:var(--muted); letter-spacing:0.02em;}
  .panel{display:none; animation:fadeUp .35s ease both;}
  .panel.active{display:block;}
  @keyframes fadeUp{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}
  .section-head{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:16px;}
  .section-head h2{font-size:25px; font-weight:800;}
  .section-head p{color:var(--muted); font-size:13.5px; margin-top:2px;}
  .grid{display:grid; gap:16px;}
  .grid-3{grid-template-columns:repeat(3,1fr);}
  .grid-2{grid-template-columns:1.3fr 1fr;}
  @media(max-width:900px){.grid-3{grid-template-columns:1fr 1fr;} .grid-2{grid-template-columns:1fr;}}
  @media(max-width:560px){.grid-3{grid-template-columns:1fr;}}
  .card{background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:20px;}
  .card h3{font-size:14.5px; font-weight:700; margin-bottom:13px; display:flex; align-items:center; gap:8px;}
  .card h3 svg{width:16px; height:16px; color:var(--scarlet);}
  .tag{display:inline-block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--scarlet); background:#FDECEE; padding:3px 9px; border-radius:999px; margin-bottom:10px;}
  .ring-wrap{display:flex; align-items:center; gap:22px;}
  .ring-wrap svg{filter:drop-shadow(0 6px 18px rgba(200,30,58,0.25));}
  .ring-number{font-family:'Anton',sans-serif; font-size:40px; line-height:1;}
  .ring-label{color:var(--muted); font-size:12.5px; margin-top:4px; max-width:220px;}
  .ai-note{margin-top:14px; background:#FFF7F1; border:1px dashed #F3C9B0; border-radius:12px; padding:13px 15px; font-size:13px; line-height:1.5;}
  .ai-note b{color:var(--scarlet-dark);}
  .info-toggle{font-size:11px; color:var(--muted); cursor:pointer; text-decoration:underline; margin-left:6px; font-weight:600;}
  .info-box{display:none; margin-top:10px; font-size:12px; color:var(--muted); background:var(--bg); border-radius:10px; padding:10px 12px; line-height:1.55;}
  .info-box.open{display:block;}
  .warn-note{margin-top:0; background:#FFF9E8; border:1px solid #F0DFA0; border-radius:10px; padding:10px 12px; font-size:12.5px; line-height:1.5; color:#7A5B00; display:flex; gap:8px; align-items:flex-start; margin-bottom:8px;}
  .ok-note{background:#EAF6EE; border:1px solid #C7E6D0; color:#1E5A34;}
  .metric-row{display:flex; justify-content:space-between; align-items:center; padding:9px 0; border-bottom:1px solid var(--line); font-size:13.5px; gap:10px;}
  .metric-row:last-child{border-bottom:none;}
  .metric-row .val{font-weight:700; text-align:right;}
  .bar-bg{height:8px; border-radius:999px; background:var(--line); overflow:hidden; margin-top:6px;}
  .bar-fill{height:100%; border-radius:999px; background:linear-gradient(90deg,var(--scarlet),var(--ember));}
  .list-item{display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--line);}
  .list-item:last-child{border-bottom:none;}
  .list-item .dot{width:8px; height:8px; border-radius:50%; background:var(--ember); flex-shrink:0;}
  .list-item .txt{flex:1; font-size:13.5px;}
  .list-item .meta{font-size:11.5px; color:var(--muted); white-space:nowrap;}
  .btn{display:inline-flex; align-items:center; gap:8px; background:var(--ink); color:#fff; border:none; padding:10px 16px; border-radius:10px; font-weight:700; font-size:13.5px; cursor:pointer; transition:transform .12s ease;}
  .btn:hover{transform:translateY(-1px);}
  .btn.primary{background:var(--scarlet);}
  .btn.ghost{background:transparent; color:var(--ink); border:1px solid var(--line);}
  .btn.walmart{background:#0071CE;}
  .btn.sm{padding:7px 12px; font-size:12.5px;}
  .chip-row{display:flex; flex-wrap:wrap; gap:8px;}
  .chip{padding:9px 14px; border-radius:999px; border:1.5px solid var(--line); font-weight:600; font-size:13px; cursor:pointer; background:#fff; transition:all .12s ease;}
  .chip:hover{border-color:var(--scarlet);}
  .chip.selected{background:var(--ink); color:#fff; border-color:var(--ink);}
  .tab-pills{display:flex; gap:8px; margin-bottom:16px; flex-wrap:wrap;}
  .tab-pill{padding:8px 15px; border-radius:999px; font-size:13px; font-weight:700; cursor:pointer; border:1.5px solid var(--line); background:#fff; color:var(--muted);}
  .tab-pill.active{background:var(--ink); color:#fff; border-color:var(--ink);}
  .subpanel{display:none;}
  .subpanel.active{display:block; animation:fadeUp .3s ease both;}

  /* humanoid figure */
  .ex-card{border:1px solid var(--line); border-radius:14px; padding:14px; cursor:pointer; display:flex; gap:12px;}
  .ex-anim{width:56px; height:56px; flex-shrink:0; background:var(--bg); border-radius:10px; display:flex; align-items:center; justify-content:center; overflow:hidden;}
  .ex-body{flex:1; min-width:0;}
  .ex-top{display:flex; justify-content:space-between; align-items:center; gap:8px;}
  .ex-name{font-weight:700; font-size:13.5px;}
  .ex-meta{font-size:11px; color:var(--muted); margin-top:2px;}
  .ex-how{display:none; margin-top:9px; font-size:12px; color:var(--ink); background:var(--bg); border-radius:10px; padding:9px 11px; line-height:1.5;}
  .ex-card.open .ex-how{display:block;}
  .ex-badge{font-size:10px; font-weight:700; text-transform:uppercase; padding:3px 7px; border-radius:999px; background:#EFEDE7; flex-shrink:0;}
  .ex-badge.home{background:#E7F3EA; color:var(--success);}
  .ex-badge.gym{background:#FDECEE; color:var(--scarlet-dark);}
  .hu-torso, .hu-armL, .hu-armR{transform-box:fill-box;}
  .hu-armL{transform-origin:100% 50%;}
  .hu-armR{transform-origin:0% 50%;}
  .hu-hips rect{transform-box:fill-box; transform-origin:50% 0%;}
  @keyframes huTorsoDown{0%,100%{transform:translateY(0);}50%{transform:translateY(6px);}}
  @keyframes huLegBend{0%,100%{transform:scaleY(1);}50%{transform:scaleY(0.76);}}
  @keyframes huArmPressL{0%,100%{transform:rotate(0deg);}50%{transform:rotate(-42deg);}}
  @keyframes huArmPressR{0%,100%{transform:rotate(0deg);}50%{transform:rotate(42deg);}}
  @keyframes huArmPullL{0%,100%{transform:rotate(0deg);}50%{transform:rotate(55deg);}}
  @keyframes huArmPullR{0%,100%{transform:rotate(0deg);}50%{transform:rotate(-55deg);}}
  @keyframes huHoldBreathe{0%,100%{transform:scaleY(1);}50%{transform:scaleY(1.02);}}
  .g-squat .hu-torso{animation:huTorsoDown 1.3s ease-in-out infinite;}
  .g-squat .hu-hips rect{animation:huLegBend 1.3s ease-in-out infinite;}
  .g-press .hu-armL{animation:huArmPressL 1.2s ease-in-out infinite;}
  .g-press .hu-armR{animation:huArmPressR 1.2s ease-in-out infinite;}
  .g-pull .hu-armL{animation:huArmPullL 1.3s ease-in-out infinite;}
  .g-pull .hu-armR{animation:huArmPullR 1.3s ease-in-out infinite;}
  .g-hold .hu-torso{animation:huHoldBreathe 2.2s ease-in-out infinite;}

  .switch-row{display:flex; align-items:center; justify-content:space-between; padding:11px 0; border-bottom:1px solid var(--line); gap:10px; flex-wrap:wrap;}
  .switch-row:last-child{border-bottom:none;}
  .switch-label{display:flex; flex-direction:column;}
  .switch-status{font-size:11.5px; color:var(--muted);}
  .switch-status.connected{color:var(--success); font-weight:700;}
  .switch-status.pairing{color:var(--warn); font-weight:700;}

  .chat-window{display:flex; flex-direction:column; gap:10px; margin-bottom:14px; max-height:260px; overflow-y:auto;}
  .bubble{max-width:80%; padding:10px 13px; border-radius:14px; font-size:13px; line-height:1.5;}
  .bubble.ai{background:#F4F1EC; align-self:flex-start; border-bottom-left-radius:4px;}
  .bubble.user{background:var(--ink); color:#fff; align-self:flex-end; border-bottom-right-radius:4px;}

  .check-item{display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--line); font-size:13.5px;}
  .check-item:last-child{border-bottom:none;}
  .check-item input{width:17px; height:17px; accent-color:var(--scarlet);}
  .check-item.checked span{text-decoration:line-through; color:var(--muted);}

  .photo-slot{aspect-ratio:1; border:1.5px dashed var(--line); border-radius:12px; display:flex; align-items:center; justify-content:center; color:var(--muted); font-size:12px; text-align:center; cursor:pointer;}
  .photo-slot:hover{border-color:var(--scarlet); color:var(--scarlet);}
  .social-row{display:flex; gap:10px; margin-top:12px;}
  .social-btn{flex:1; text-align:center; padding:11px 0; border-radius:10px; font-weight:700; font-size:12.5px; color:#fff; cursor:pointer;}
  .stat-num{font-family:'Anton',sans-serif; font-size:26px;}

  .recipe-card{border:1px solid var(--line); border-radius:14px; overflow:hidden;}
  .recipe-banner{font-size:34px; background:linear-gradient(135deg,#FFF3EC,#FDECEE); padding:18px; text-align:center;}
  .recipe-body{padding:15px;}
  .recipe-steps{display:none; margin-top:10px; font-size:12.5px; line-height:1.6;}
  .recipe-card.open .recipe-steps{display:block;}
  .recipe-steps ol{padding-left:18px; margin-top:6px;}
  .recipe-steps .ing-title{font-weight:700; font-size:12px; margin-top:8px;}
  .video-box{display:none; margin-top:10px; background:var(--ink); border-radius:10px; height:110px; align-items:center; justify-content:center; color:#fff; font-size:28px; flex-direction:column; gap:4px;}
  .video-box.open{display:flex;}
  .video-box span{font-size:11px; color:rgba(255,255,255,0.5); font-family:'Inter',sans-serif;}

  .cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:6px;}
  .cal-cell{aspect-ratio:1; border-radius:8px; background:var(--bg); border:1px solid var(--line); padding:5px; font-size:10px; color:var(--muted); position:relative;}
  .cal-cell.small{font-size:8px;}
  .cal-cell .dots{position:absolute; bottom:4px; left:4px; display:flex; gap:2px;}
  .cal-dot{width:5px; height:5px; border-radius:50%;}
  .cal-legend{display:flex; gap:14px; flex-wrap:wrap; margin-top:12px; font-size:12px; color:var(--muted);}
  .cal-legend span{display:inline-flex; align-items:center; gap:5px;}
  .cal-legend .cal-dot{width:8px; height:8px;}

  .post-card{border:1px solid var(--line); border-radius:14px; overflow:hidden; margin-bottom:14px;}
  .post-head{display:flex; align-items:center; gap:10px; padding:12px 14px;}
  .post-head .avatar{width:30px; height:30px; font-size:11px;}
  .post-img{height:220px; display:flex; align-items:center; justify-content:center; font-size:52px;}
  .post-actions{display:flex; gap:16px; padding:12px 14px 4px; font-size:13px; color:var(--muted);}
  .post-caption{padding:4px 14px 14px; font-size:13px;}
  .compose{display:flex; gap:10px; align-items:center; margin-bottom:16px;}
  .compose input{flex:1; padding:11px 14px; border-radius:10px; border:1px solid var(--line); font-size:13.5px;}

  #cameraOverlay{position:fixed; inset:0; background:rgba(10,8,6,0.94); z-index:55; display:none; align-items:center; justify-content:center; flex-direction:column; color:#fff; text-align:center; padding:24px;}
  #cameraOverlay.active{display:flex;}
  .camera-view{width:260px; height:170px; border:3px solid var(--scarlet); border-radius:14px; position:relative; margin-bottom:18px; background:#161310; overflow:hidden;}
  .camera-view::after{content:''; position:absolute; left:6%; right:6%; top:15%; height:2px; background:var(--scarlet); box-shadow:0 0 8px var(--scarlet); animation:scanline 1.3s linear infinite;}
  @keyframes scanline{0%{top:15%;}50%{top:82%;}100%{top:15%;}}
  #cameraOverlay h4{font-size:16px; font-weight:700; margin-bottom:6px;}
  #cameraOverlay p{font-size:12.5px; color:rgba(255,255,255,0.55);}

  #splash{position:fixed; inset:0; background:var(--ink); z-index:60; display:flex; align-items:center; justify-content:center; flex-direction:column; color:#fff; text-align:center; padding:24px;}
  #splash .splash-flame{width:76px; height:76px; margin-bottom:18px; animation:flicker 1.8s ease-in-out infinite;}
  @keyframes flicker{0%,100%{transform:scale(1);}50%{transform:scale(1.06) rotate(-1deg);}}
  #splash h1{font-family:'Anton',sans-serif; font-size:42px; letter-spacing:0.02em;}
  #splash h1 span{color:var(--scarlet);}
  #splash p{color:rgba(255,255,255,0.55); margin-top:8px; font-size:14px;}
  #azaraIntro{display:none; max-width:420px;}
  #azaraIntro .azara-avatar{width:52px; height:52px; border-radius:50%; background:linear-gradient(135deg,var(--ember),var(--scarlet)); display:flex; align-items:center; justify-content:center; font-size:22px; margin:0 auto 16px;}
  #azaraIntro h2{font-size:20px; margin-bottom:8px;}
  #azaraIntro p{color:rgba(255,255,255,0.6); font-size:14px; margin-bottom:22px; line-height:1.5;}

  #onboard{position:fixed; inset:0; background:var(--ink); color:#fff; z-index:50; display:none; align-items:center; justify-content:center; padding:24px; overflow-y:auto;}
  .ob-card{max-width:600px; width:100%; padding:20px 0;}
  .ob-flame{width:34px; height:34px; margin-bottom:14px;}
  .ob-step{display:none;}
  .ob-step.active{display:block; animation:fadeUp .4s ease both;}
  .ob-q{font-size:22px; font-weight:800; margin-bottom:4px; line-height:1.3;}
  .ob-sub{color:rgba(255,255,255,0.5); font-size:13px; margin-bottom:16px;}
  .ob-chip{display:block; width:100%; text-align:left; padding:13px 16px; border-radius:12px; border:1.5px solid rgba(255,255,255,0.16); background:rgba(255,255,255,0.03); color:#fff; font-weight:600; font-size:14px; margin-bottom:8px; cursor:pointer; transition:all .15s ease;}
  .ob-chip:hover{border-color:var(--scarlet); background:rgba(200,30,58,0.12);}
  .ob-chip.selected{border-color:var(--scarlet); background:rgba(200,30,58,0.18);}
  .ob-field{margin-bottom:12px;}
  .ob-field label{display:block; font-size:12px; color:rgba(255,255,255,0.5); margin-bottom:5px; font-weight:600;}
  .ob-input, .ob-select{width:100%; padding:12px 14px; border-radius:10px; border:1.5px solid rgba(255,255,255,0.16); background:rgba(255,255,255,0.04); color:#fff; font-size:14px; font-family:'Inter',sans-serif;}
  .ob-input::placeholder{color:rgba(255,255,255,0.35);}
  .ob-select option{color:#000;}
  .ob-row2{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  .ob-row3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px;}
  .ob-progress{display:flex; gap:4px; margin-bottom:20px;}
  .ob-progress span{height:4px; flex:1; border-radius:99px; background:rgba(255,255,255,0.14);}
  .ob-progress span.done{background:var(--scarlet);}
  .ob-continue{margin-top:10px; width:100%; justify-content:center; padding:13px; font-size:14.5px; opacity:0.4; pointer-events:none;}
  .ob-continue.enabled{opacity:1; pointer-events:auto;}
  .analyzing{text-align:center;}
  .analyzing .spinner{width:56px; height:56px; margin:0 auto 22px;}
  .analyzing .spinner svg{animation:spin 1.4s linear infinite;}
  @keyframes spin{to{transform:rotate(360deg);}}
  .analyzing h2{font-size:20px; font-weight:800; margin-bottom:6px;}
  .analyzing-line{color:rgba(255,255,255,0.55); font-size:13px; margin-top:14px; font-family:'JetBrains Mono',monospace; min-height:20px;}

  @media(max-width:860px){
    .sidebar{display:none;}
    .content{padding:20px 16px 100px;}
    .topbar{padding:15px 16px;}
    #mobilenav{position:fixed; bottom:0; left:0; right:0; background:var(--ink); display:flex; z-index:20; border-top:1px solid rgba(255,255,255,0.1); overflow-x:auto;}
    #mobilenav .nav-item{flex-direction:column; gap:4px; font-size:9.5px; padding:8px 10px; text-align:center; flex-shrink:0; margin-bottom:0;}
    #mobilenav .nav-item span{white-space:nowrap;}
    .ob-row3{grid-template-columns:1fr 1fr;}
  }
  @media(min-width:861px){#mobilenav{display:none;}}