/* ============================================================
   COLA DE ARROZ ROXO — APP · Design iOS/Editorial (vanilla)
   Inspirado em Apple Health + trilha gamificada.
   ============================================================ */
:root{
  --ink:#1B1C28; --muted:#797E92; --faint:#A9ADBE;
  --card:#FFFFFF; --line:#ECE9F3;
  --pp:#5B4FD6; --pp-deep:#3A3299; --pp-ink:#272160; --pp-bg:#EFEDFB; --pp-soft:#F6F5FD;
  --gold:#C09A37; --gold-bg:#F7F0DD;
  --green:#1FA565; --green-bg:#E7F7EF;
  --pink:#E85C8A; --teal:#2BA8A0;
  --shadow:0 14px 34px rgba(40,34,96,.10);
  --shadow-sm:0 6px 18px rgba(40,34,96,.07);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{font-size:16px}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;color:var(--ink);
  background:#E9E6F2;-webkit-font-smoothing:antialiased;letter-spacing:-.1px}
.app{max-width:480px;margin:0 auto;min-height:100vh;position:relative;
  background:linear-gradient(180deg,#FBFAFF 0%,#F4F1FB 38%,#EFEDF9 100%);
  box-shadow:0 0 70px rgba(40,34,96,.12);overflow-x:hidden}
.screen{padding:0 17px 120px;animation:fade .35s cubic-bezier(.2,.7,.3,1)}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(.92);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(91,79,214,.45)}50%{box-shadow:0 0 0 10px rgba(91,79,214,0)}}
h1{font-family:'Playfair Display',serif;font-size:26px;font-weight:800;line-height:1.16}
h2{font-family:'Playfair Display',serif;font-size:19px;font-weight:800;line-height:1.2;margin-bottom:9px}
h2 em{font-style:italic;color:var(--pp-deep)}
.kick{font-size:9.5px;font-weight:900;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.muted{color:var(--muted);font-size:13px;line-height:1.55}
.sect-h{font-size:11px;font-weight:900;letter-spacing:1.2px;text-transform:uppercase;color:var(--faint);margin:22px 2px 11px}

/* ---------- top bar ---------- */
.topbar{display:flex;align-items:center;gap:9px;padding:16px 17px 12px;position:sticky;top:0;z-index:20;
  background:linear-gradient(180deg,rgba(251,250,255,.92),rgba(251,250,255,.6));backdrop-filter:blur(12px)}
.topbar .logo{width:30px;height:30px;flex:0 0 30px}
.topbar .bt b{display:block;font-size:14px;font-weight:900;line-height:1.05}
.topbar .bt b span{color:var(--pp)}
.topbar .bt small{font-size:7.5px;font-weight:800;letter-spacing:1.6px;color:var(--gold);text-transform:uppercase}
.topbar .pill{margin-left:auto;display:flex;align-items:center;gap:5px;background:var(--gold-bg);color:var(--gold);
  font-size:11px;font-weight:900;border-radius:30px;padding:6px 12px}

/* ---------- generic card ---------- */
.card{background:var(--card);border-radius:22px;box-shadow:var(--shadow-sm);animation:pop .4s cubic-bezier(.2,.7,.3,1)}
.row-card{display:flex;gap:13px;align-items:center;background:var(--card);border-radius:20px;padding:15px;
  box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .12s}
.row-card:active{transform:scale(.985)}
.row-card .ic{width:46px;height:46px;flex:0 0 46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;background:var(--pp-bg)}
.row-card .ct{font-size:14.5px;font-weight:800;line-height:1.2}
.row-card .cs{font-size:11.5px;color:var(--muted);line-height:1.4;margin-top:2px}
.row-card .chev{margin-left:auto;color:var(--faint);font-size:22px}

/* ---------- AGE RING (Apple Health style) ---------- */
.ring-card{padding:20px 18px;margin-top:4px;background:linear-gradient(160deg,#fff,#FAF9FF);border:1px solid #F0EDFA}
.ring-wrap{display:flex;align-items:center;gap:18px}
.ring{position:relative;width:140px;height:140px;flex:0 0 140px}
.ring svg{transform:rotate(-90deg)}
.ring .rc-mid{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring .rc-num{font-size:38px;font-weight:900;letter-spacing:-1px;line-height:1}
.ring .rc-lab{font-size:8.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);text-align:center;margin-top:3px;line-height:1.25}
.ring-stats{flex:1;display:flex;flex-direction:column;gap:0}
.ring-stats .st{padding:7px 0}
.ring-stats .st + .st{border-top:1px solid var(--line)}
.ring-stats .sl{font-size:11px;color:var(--muted);font-weight:600}
.ring-stats .sv{font-size:16px;font-weight:800;margin-top:1px}
.ring-stats .sv.goal{color:var(--green)} .ring-stats .sv.real{color:var(--faint)}

/* ---------- daily insight ---------- */
.insight{display:flex;gap:12px;align-items:flex-start;padding:15px;border-radius:20px;margin-top:13px;
  border-left:4px solid var(--pp);background:var(--pp-soft);box-shadow:var(--shadow-sm)}
.insight .ic{width:40px;height:40px;flex:0 0 40px;border-radius:13px;background:var(--card);display:flex;align-items:center;justify-content:center;font-size:19px}
.insight h3{font-size:14px;font-weight:800;line-height:1.25}
.insight p{font-size:12.5px;color:var(--muted);line-height:1.5;margin-top:3px}

/* ---------- streak ---------- */
.streak-card{display:flex;align-items:center;gap:13px;padding:15px 16px;margin-top:13px;border-radius:20px;
  background:linear-gradient(135deg,#2B2466,#15122E);color:#fff;box-shadow:0 16px 32px rgba(34,30,80,.34)}
.streak-card .fl{font-size:30px;filter:drop-shadow(0 4px 8px rgba(255,140,40,.5))}
.streak-card b{font-size:22px;font-weight:900}
.streak-card .sl{font-size:11px;color:#B8B3E0;font-weight:600}
.streak-card .mini{margin-left:auto;display:flex;gap:5px}
.streak-card .dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.22)}
.streak-card .dot.on{background:#FFB454;box-shadow:0 0 8px rgba(255,180,84,.7)}

/* ---------- gamified path ---------- */
.path{position:relative;padding:14px 0 6px}
.node{position:relative;display:flex;align-items:center;gap:14px;padding:9px 0;cursor:default}
.node .bub{width:54px;height:54px;flex:0 0 54px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:900;position:relative;z-index:2;transition:transform .12s}
.node.done .bub{background:linear-gradient(145deg,#2FB673,#1FA565);color:#fff;box-shadow:0 8px 18px rgba(31,165,101,.34)}
.node.active .bub{background:linear-gradient(145deg,#6B5FE0,#4A3FBE);color:#fff;box-shadow:0 8px 20px rgba(74,63,190,.4);animation:pulse 2s infinite;cursor:pointer}
.node.active .bub:active{transform:scale(.93)}
.node.lock .bub{background:#E7E3F1;color:var(--faint)}
.node::before{content:"";position:absolute;left:26px;top:-9px;width:3px;height:18px;background:var(--line)}
.node:first-child::before{display:none}
.node.done::before,.node.active::before{background:#C9C2EC}
.node .nt{font-size:13.5px;font-weight:800}
.node .ns{font-size:11px;color:var(--muted)}
.node.lock .nt{color:var(--faint)}
.node .tag{margin-left:auto;font-size:9.5px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;padding:4px 9px;border-radius:20px}
.node.active .tag{background:var(--pp);color:#fff}
.node.done .tag{background:var(--green-bg);color:var(--green)}
.wk-div{font-size:10px;font-weight:900;letter-spacing:1.2px;text-transform:uppercase;color:var(--pp-deep);
  background:var(--pp-bg);display:inline-block;padding:4px 11px;border-radius:20px;margin:14px 0 4px}

/* ---------- buttons ---------- */
.btn{display:block;width:100%;border:none;border-radius:16px;color:#fff;font-weight:900;font-size:16px;padding:17px;
  text-align:center;cursor:pointer;font-family:'Inter';background:linear-gradient(135deg,#2FB673,#1FA565);
  box-shadow:0 12px 26px rgba(31,165,101,.32);transition:transform .12s}
.btn:active{transform:scale(.99)} .btn:disabled{opacity:.45;box-shadow:none}
.btn.pp{background:linear-gradient(135deg,#6B5FE0,#4A3FBE);box-shadow:0 12px 26px rgba(74,63,190,.34)}
.btn.ghost{background:none;color:var(--muted);box-shadow:none;font-weight:700;font-size:13.5px;padding:13px}
.btn-bar{position:fixed;bottom:64px;left:50%;transform:translateX(-50%);width:100%;max-width:480px;padding:12px 17px;
  background:linear-gradient(to top,#EFEDF9 72%,transparent);z-index:30}
.backlink{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:800;color:var(--muted);
  background:none;border:none;cursor:pointer;margin:14px 0 12px;font-family:'Inter'}

/* ---------- bottom tab bar ---------- */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;height:64px;z-index:40;
  display:flex;background:rgba(255,255,255,.86);backdrop-filter:blur(16px);border-top:1px solid var(--line)}
.tabbar .tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;
  color:var(--faint);font-size:9.5px;font-weight:800;letter-spacing:.2px}
.tabbar .tab svg{width:23px;height:23px}
.tabbar .tab.on{color:var(--pp)}
.tabbar .tab.on svg{stroke:var(--pp)}

/* ---------- onboarding ---------- */
.ob-dots{display:flex;gap:5px;justify-content:center;margin-bottom:18px}
.ob-dots i{width:7px;height:7px;border-radius:50%;background:#D6D0E8;transition:all .25s}
.ob-dots i.on{background:var(--pp);width:18px;border-radius:4px}
.ob-opts{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.opt{display:flex;align-items:center;gap:12px;background:var(--card);border:2px solid var(--line);border-radius:16px;
  padding:15px 16px;font-size:14.5px;font-weight:700;cursor:pointer;text-align:left;width:100%;font-family:'Inter';
  transition:border-color .15s,background .15s,transform .1s}
.opt:active{transform:scale(.99)} .opt .e{font-size:21px}
.opt.sel{border-color:var(--pp);background:var(--pp-bg)}
.opt .ck{margin-left:auto;width:22px;height:22px;border:2px solid var(--line);border-radius:50%;flex:0 0 22px;
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px}
.opt.multi .ck{border-radius:7px}
.opt.sel .ck{background:var(--pp);border-color:var(--pp)}
.ti{width:100%;border:2px solid var(--line);border-radius:16px;background:var(--card);padding:16px;font-size:16px;
  font-family:'Inter';font-weight:600;text-align:center;outline:none;margin-top:16px}
.ti:focus{border-color:var(--pp)}
.ob-hero{width:100%;height:150px;border-radius:20px;object-fit:cover;object-position:center 25%;margin-bottom:4px;box-shadow:var(--shadow)}

/* ---------- yuna chip ---------- */
.yuna{display:flex;gap:11px;align-items:center;background:var(--card);border-radius:18px;border-left:4px solid var(--gold);
  padding:13px 14px;margin:13px 0;box-shadow:var(--shadow-sm)}
.yuna img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:0 0 44px}
.yuna .yt{font-size:12.5px;line-height:1.5}
.yuna .yn{font-size:10px;font-weight:900;color:var(--gold);text-transform:uppercase;letter-spacing:.6px;margin-bottom:2px}

/* ---------- ritual / recipe ---------- */
.r-hero{width:100%;height:130px;border-radius:18px;object-fit:cover;object-position:center 60%;margin-bottom:12px;box-shadow:var(--shadow-sm)}
.phase-tag{display:inline-block;background:var(--pp-bg);color:var(--pp-deep);font-size:10px;font-weight:900;
  letter-spacing:.6px;text-transform:uppercase;border-radius:8px;padding:5px 11px;margin-bottom:8px}
.recipe{background:var(--card);border-radius:20px;padding:16px;margin-bottom:14px;box-shadow:var(--shadow-sm)}
.ing{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid var(--line)}
.ing:last-child{border-bottom:none}
.ing .amt{flex:0 0 80px;font-size:12.5px;font-weight:900;color:var(--pp-deep)}
.ing .ina b{font-size:13px} .ing .ina span{display:block;font-size:11px;color:var(--muted);line-height:1.4;margin-top:2px}
.booster{background:var(--green-bg);border-radius:13px;padding:12px 13px;margin-top:11px;font-size:12.5px;line-height:1.55}
.booster b{color:var(--green)}
.steps{counter-reset:s;list-style:none;margin-top:8px}
.steps li{counter-increment:s;position:relative;padding:9px 0 9px 35px;font-size:13px;line-height:1.55;border-bottom:1px solid var(--line)}
.steps li:last-child{border-bottom:none}
.steps li::before{content:counter(s);position:absolute;left:0;top:7px;width:25px;height:25px;border-radius:50%;
  background:var(--pp);color:#fff;font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center}
.note{font-size:11px;color:var(--muted);line-height:1.55;margin-top:11px;font-style:italic}
.taichi{background:var(--card);border-radius:18px;padding:14px;margin-bottom:12px;box-shadow:var(--shadow-sm)}
.taichi .th{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.taichi .th b{font-size:14px}
.taichi .th .tm{margin-left:auto;font-size:10.5px;font-weight:900;color:var(--gold);background:var(--gold-bg);border-radius:7px;padding:3px 9px}
.video{position:relative;width:100%;aspect-ratio:16/9;border-radius:13px;overflow:hidden;margin-bottom:10px;background:#15122E}
.video iframe{width:100%;height:100%;border:0;display:block}
.video .vph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#A99FE6;font-size:11px;font-weight:700;text-align:center;padding:14px;gap:6px}
.video .vph .pl{width:46px;height:46px;border-radius:50%;background:var(--pp);display:flex;align-items:center;justify-content:center}
.taichi ul{list-style:none;margin-top:4px}
.taichi ul li{font-size:12.5px;line-height:1.5;padding:5px 0 5px 18px;position:relative;color:var(--muted)}
.taichi ul li::before{content:"";position:absolute;left:0;top:11px;width:6px;height:6px;border-radius:50%;background:var(--gold)}

/* ---------- generic content (rituals/bonuses) ---------- */
.content-hero{width:100%;height:140px;border-radius:20px;object-fit:cover;margin-bottom:14px;box-shadow:var(--shadow-sm)}
.cblock{background:var(--card);border-radius:16px;padding:15px 16px;margin-bottom:11px;box-shadow:var(--shadow-sm)}
.cblock h3{font-size:14px;font-weight:800;margin-bottom:5px}
.cblock p{font-size:12.5px;line-height:1.6;color:var(--muted)}
.cblock .num{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--gold);color:#fff;font-size:12px;font-weight:900;align-items:center;justify-content:center;margin-right:8px;vertical-align:-2px}
.disclaimer{font-size:10px;color:var(--faint);line-height:1.55;text-align:center;margin-top:18px;padding:0 6px}

/* ---------- bottom sheet (check-in) ---------- */
.sheet-bg{position:fixed;inset:0;z-index:90;background:rgba(20,16,46,.4);backdrop-filter:blur(3px);animation:fade .25s}
.sheet{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;z-index:91;
  background:var(--card);border-radius:28px 28px 0 0;padding:8px 18px calc(18px + env(safe-area-inset-bottom));
  box-shadow:0 -16px 40px rgba(20,16,46,.25);animation:sheetUp .35s cubic-bezier(.2,.8,.3,1);max-height:92vh;overflow-y:auto}
@keyframes sheetUp{from{transform:translate(-50%,100%)}to{transform:translate(-50%,0)}}
.sheet .grab{width:38px;height:4px;border-radius:3px;background:#DCD7EC;margin:6px auto 14px}
.seg{display:flex;background:var(--pp-soft);border-radius:16px;padding:5px;gap:5px;margin-top:9px}
.seg button{flex:1;border:none;background:none;border-radius:12px;padding:11px 4px;font-family:'Inter';font-weight:800;
  font-size:12.5px;color:var(--muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;transition:all .15s}
.seg button .se{font-size:19px}
.seg button.on{background:var(--card);color:var(--pp);box-shadow:var(--shadow-sm)}
.ci-q{font-size:14px;font-weight:800;margin-top:18px}
