/* dose.css: Daily Dose (design A, Ryan 2026-11-09). Scoped to .dz inside the v2 portal; uses the portal's color tokens
   (--text, --muted, --surface, --elev, --border) so dark mode follows Settings. Brand fills stay fixed. */
.dz{--dzPsych:#E8451F;--dzPsychText:#CE3D1C;--dzLime:#E1E782;--dzLav:#CDCCFF;--dzPink:#E567CE;--dzMaroon:#602D36;
  --dzIce:#CFE8FF;--dzIceInk:#1F4E79;--dzOk:#2F7A3E;--dzOkBg:#E3F3E6;--dzNo:#A3311A;--dzNoBg:#FDECE7;--dzHeroA:#FFF1EA;--dzHeroB:#FFE0D2;--dzHeroInk:#602D36}
html.u2[data-theme="dark"] .dz{--dzPsychText:#FF8A6B;--dzIce:#1E3247;--dzIceInk:#CFE8FF;--dzOk:#8FD19E;--dzOkBg:#1F3324;--dzNo:#FFB4A2;--dzNoBg:#3A1B16;
  --dzHeroA:#3A1D1A;--dzHeroB:#4A2219;--dzHeroInk:#FAF8EE}
.dz *{box-sizing:border-box}
.dzIc{flex:none;display:inline-block;vertical-align:middle}
.dzSr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.dzSmall{font-size:13.5px;color:var(--muted);margin:0 0 6px}
.dz a{color:inherit}
.dzBtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:999px;border:1.5px solid var(--border);
  background:var(--surface);color:var(--text);font:600 15px/1 Poppins,sans-serif;text-decoration:none;cursor:pointer}
.dzBtn:hover{border-color:var(--text)}
.dzBtn.pri{background:var(--dzPsychText);border-color:var(--dzPsychText);color:#fff}
html.u2[data-theme="dark"] .dzBtn.pri{color:#231215}
.dzBtn[disabled]{opacity:.5;cursor:default}
.dz :focus-visible{outline:3px solid var(--dzPsychText);outline-offset:2px;border-radius:10px}
/* home */
.dzHomeWrap{margin:0 0 28px}
.dzHomeGrid{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:980px){.dzHomeGrid{grid-template-columns:.9fr 1.1fr;align-items:start}}
.dzMore{margin:10px 2px 0;font-size:14px}.dzMore a{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--dzPsychText);text-decoration:none;min-height:44px}
.dzSkel{height:180px;border-radius:24px;background:linear-gradient(90deg,var(--elev),var(--surface),var(--elev));background-size:200% 100%;animation:dzShimmer 1.4s infinite}
@keyframes dzShimmer{to{background-position:-200% 0}}
/* hero */
.dzHero{position:relative;overflow:hidden;border-radius:28px;padding:22px;background:linear-gradient(160deg,var(--dzHeroA),var(--dzHeroB));color:var(--dzHeroInk)}
.dzHero .dzRow{display:flex;align-items:center;gap:18px}
.dzHero h2{font:800 28px/1.05 'EC',Poppins,serif;margin:0 0 4px;color:var(--dzHeroInk)}
.dzHero p{margin:0}
.dzMeta{font-size:13.5px;margin-top:6px!important;opacity:.85}.dzMeta .dzIc{vertical-align:-2px;margin-right:2px}
.dzFlame{position:relative;width:104px;height:116px;flex:none}
.dzFlame svg{position:absolute;inset:0;width:100%;height:100%}
.dzFlame b{position:absolute;left:0;right:0;top:48px;text-align:center;font:800 36px/1 'EC',Poppins,serif;color:#fff;text-shadow:0 2px 0 rgba(96,45,54,.25)}
.dzCompact .dzFlame{width:84px;height:94px}.dzCompact .dzFlame b{top:38px;font-size:30px}.dzCompact h2{font-size:24px}
.dzWeek{display:flex;gap:6px;margin-top:16px}
.dzWeek>span{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;font:600 11.5px Poppins,sans-serif}
.dzWeek i{position:relative;width:100%;max-width:38px;aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.65);border:2px dashed rgba(96,45,54,.25)}
.dzWeek i.on{background:var(--dzPsych);border:0;color:#fff}.dzWeek i.fz{background:var(--dzIce);border:0;color:var(--dzIceInk)}
.dzWeek i.no{background:transparent;border:2px solid rgba(96,45,54,.12)}
.dzWeek i.now{border:2px solid var(--dzPsych);background:#fff;color:var(--dzPsych)}
html.u2[data-theme="dark"] .dzWeek i{background:rgba(255,255,255,.08)}html.u2[data-theme="dark"] .dzWeek i.on{background:var(--dzPsych)}
/* the dose card */
.dzDose{border-radius:28px;background:var(--surface);border:2px solid var(--border);padding:20px;box-shadow:var(--u2-shadow)}
.dzHd{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.dzHd h2{font:800 24px/1.1 'EC',Poppins,serif;color:var(--text);margin:0}
.dzCap{width:56px;height:28px;border-radius:99px;display:flex;overflow:visible;transform:rotate(-20deg);flex:none}
.dzCap i{flex:1;transition:transform .4s}.dzCap i:first-child{background:var(--dzPsych);border-radius:99px 0 0 99px}.dzCap i:last-child{background:var(--dzLime);border-radius:0 99px 99px 0}
.dzCap.open i:first-child{transform:translateX(-6px) rotate(-14deg)}.dzCap.open i:last-child{transform:translateX(6px) rotate(14deg)}
.dzQ{font-weight:600;font-size:17px;color:var(--text);margin:0 0 12px;line-height:1.45}
.dzChoice{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;min-height:48px;padding:12px 14px;border-radius:14px;border:1.5px solid var(--border);
  background:var(--surface);color:var(--text);margin:0 0 8px;font:500 15.5px/1.4 Poppins,sans-serif;cursor:pointer;text-decoration:none}
.dzChoice:hover:not([disabled]){border-color:var(--text)}
.dzChoice .k{flex:none;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.dzChoice.right{border-color:var(--dzOk);background:var(--dzOkBg)}.dzChoice.right .k{background:var(--dzOk);border-color:var(--dzOk);color:#fff}
.dzChoice.wrong{border-color:var(--dzNo);background:var(--dzNoBg)}
.dzChoice[disabled]{cursor:default}
.dzLink b{color:var(--text)}
.dzFb{display:flex;gap:8px;align-items:flex-start;border-radius:14px;padding:10px 12px;font-size:14.5px;margin:4px 0 10px}
.dzFb.ok{background:var(--dzOkBg);color:var(--dzOk)}.dzFb.no{background:var(--dzNoBg);color:var(--dzNo)}
.dzSay{background:var(--dzMaroon);color:#FAF8EE;border-radius:18px;padding:12px 14px;margin:0 0 12px}
.dzSay>span{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dzLime)}
.dzSay p{margin:4px 0 0;font-weight:500}.dzSay .dzWhy{font-weight:400;font-size:14px;opacity:.85;margin-top:8px}
.dzBar{height:10px;border-radius:99px;background:var(--elev);overflow:hidden;margin:6px 0 8px}.dzBar i{display:block;height:100%;background:var(--dzPsych)}
.dzSrc{font-size:12.5px;color:var(--muted);margin:12px 0 0}
.dzDone{display:flex;gap:12px;align-items:flex-start;background:var(--dzOkBg);color:var(--dzOk);border-radius:18px;padding:14px;margin-top:4px}
.dzDone .dzSmall{margin:4px 0 0;color:inherit;opacity:.85}
/* page */
.dzHi{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:4px 0 10px}
.dzHi h1{font:800 clamp(30px,5vw,42px)/1 'EC',Poppins,serif;color:var(--text);margin:0}
.dzChips{display:flex;gap:8px;margin-left:auto}
.dzChip{display:inline-flex;align-items:center;gap:6px;border-radius:99px;padding:6px 12px;font-weight:700;font-size:14px;background:var(--elev);color:var(--text)}
.dzChip.f{background:#FFE3DA;color:#A3311A}.dzChip.ice{background:var(--dzIce);color:var(--dzIceInk)}
.dzTabs{display:flex;gap:6px;overflow-x:auto;margin:0 0 18px;padding-bottom:2px;scrollbar-width:none}
.dzTabs::-webkit-scrollbar{display:none}
.dzTabs a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--border);text-decoration:none;font-weight:600;color:var(--muted)}
.dzTabs a[aria-current=page]{background:var(--u2-chipOn);border-color:var(--u2-chipOn);color:var(--u2-chipOnText)}
.dzLede{color:var(--muted);margin:0 0 16px;max-width:680px}
.dzGrid{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:1000px){.dzGrid{grid-template-columns:1.1fr .9fr}}
.dzSide{display:grid;gap:18px;align-content:start}
.dzCard{border-radius:24px;background:var(--surface);border:1.5px solid var(--border);padding:18px}
.dzCard h3{font:800 20px/1.1 'EC',Poppins,serif;color:var(--text);margin:0 0 10px}
.dzLvl{display:flex;align-items:center;gap:14px}
.dzBadge{width:60px;height:60px;border-radius:18px;background:var(--dzLav);color:#602D36;display:flex;flex-direction:column;align-items:center;justify-content:center;font:800 24px/1 'EC',Poppins,serif;flex:none}
.dzBadge small{font:700 9px Poppins,sans-serif;letter-spacing:.1em}
.dzLvBar{height:12px;border-radius:99px;background:var(--elev);overflow:hidden;margin:6px 0 6px}.dzLvBar i{display:block;height:100%;background:linear-gradient(90deg,var(--dzPsych),var(--dzPink));border-radius:99px}
.dzExtra{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.dzExtra li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--elev);font-size:14.5px}.dzExtra b{margin-left:auto;color:var(--dzPsychText)}
.dzRoad{position:relative;margin:0;padding:0;list-style:none}
.dzRoad::before{content:"";position:absolute;left:31px;top:20px;bottom:20px;width:6px;border-radius:6px;background:repeating-linear-gradient(var(--border) 0 12px,transparent 12px 20px)}
.dzRoad li{position:relative;display:flex;gap:16px;align-items:center;padding:10px 0}
.dzRoad .node{width:68px;height:68px;border-radius:22px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;font:800 24px/1 'EC',Poppins,serif;z-index:1;background:var(--surface);border:2px solid var(--border);color:var(--muted)}
.dzRoad .node small{font:700 9px Poppins,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.dzRoad li.got .node{background:var(--dzLav);border-color:var(--dzLav);color:#602D36}
.dzRoad li.cur .node{background:var(--dzPsych);border-color:var(--dzPsych);color:#fff;box-shadow:0 0 0 6px rgba(232,69,31,.18)}
.dzRoad .body{flex:1;border-radius:18px;padding:12px 14px;background:var(--elev)}
.dzRoad .body b{display:block;color:var(--text);font-size:16px}.dzRoad .body span{font-size:14px;color:var(--muted)}
.dzRoad .body .need{float:right;font-weight:700;font-size:13px;margin-left:8px}
.dzPts{width:100%;border-collapse:collapse;font-size:15px}
.dzPts th{text-align:left;font:700 11.5px Poppins,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:0 0 6px}
.dzPts td{padding:9px 0;border-top:1px solid var(--border);color:var(--text)}.dzPts td span{display:block;font-size:12.5px;color:var(--muted)}
.dzPts td.n{text-align:right;font:800 18px 'EC',Poppins,serif;color:var(--dzPsychText);white-space:nowrap}
.dzFair{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14.5px}.dzFair li{display:flex;gap:8px;align-items:flex-start}.dzFair .dzIc{color:var(--dzOk);margin-top:3px}
.dzBoard{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.dzBoard li{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:var(--elev)}
.dzBoard li.you{outline:2px solid var(--dzPsych)}
.dzBoard .rk{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:800 16px 'EC',Poppins,serif;background:var(--surface);color:var(--text);flex:none}
.dzBoard li:nth-child(1) .rk{background:#FFD45C;color:#602D36}.dzBoard li:nth-child(2) .rk{background:#DADDE3;color:#602D36}.dzBoard li:nth-child(3) .rk{background:#F0C3A4;color:#602D36}
.dzBoard .lv{font-size:12.5px;color:var(--muted)}.dzBoard .pt{margin-left:auto;font:800 18px 'EC',Poppins,serif;color:var(--dzPsychText)}
.dzOptin{text-align:center;padding:26px 18px;border-radius:24px;background:linear-gradient(160deg,#F4F3FF,#FFF1F8);color:#602D36}
html.u2[data-theme="dark"] .dzOptin{background:var(--elev);color:var(--text)}
.dzOptin h3{font:800 24px 'EC',Poppins,serif;margin:8px 0 6px}
.dzToggle{display:flex;align-items:center;gap:14px;min-height:56px;padding:12px 0;border-bottom:1px solid var(--border);cursor:pointer}
.dzToggle .t{flex:1}.dzToggle .t b{display:block;color:var(--text)}.dzToggle .t span{font-size:14px;color:var(--muted)}
.dzSwitch{position:relative;width:52px;height:32px;flex:none}
.dzSwitch input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;width:100%;height:100%}
.dzSwitch i{position:absolute;inset:0;border-radius:99px;background:rgba(96,45,54,.25);transition:background .2s;pointer-events:none}
.dzSwitch i::after{content:"";position:absolute;left:3px;top:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}
.dzSwitch input:checked+i{background:var(--dzPsychText)}.dzSwitch input:checked+i::after{transform:translateX(20px)}
.dzSwitch input:focus-visible+i{outline:3px solid var(--dzPsychText);outline-offset:2px}
.dz select{min-height:44px;border-radius:12px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);padding:0 12px;font:500 15px Poppins,sans-serif}
.dzWarn{display:flex;gap:8px;align-items:flex-start;background:#FFF1C9;color:#4D3A08;border-radius:12px;padding:10px 12px;font-size:14px;margin:10px 0 0}
.dzWarn a{font-weight:700}
/* top-bar chip, toast, confetti (outside .dz) */
.dzTopChip{display:inline-flex;align-items:center;gap:4px;min-height:40px;min-width:44px;padding:0 12px;border-radius:999px;background:#FFE3DA;color:#A3311A;font:700 15px Poppins,sans-serif;text-decoration:none;margin-right:8px;flex:none}
.dzTopChip.todo{box-shadow:inset 0 0 0 2px #E8451F}
.dzTopChip:focus-visible{outline:3px solid #CE3D1C;outline-offset:2px}
.dzTopChip[hidden]{display:none}
.dzToast{position:fixed;left:50%;top:calc(16px + env(safe-area-inset-top));transform:translate(-50%,-20px);opacity:0;background:#602D36;color:#fff;padding:12px 18px;border-radius:16px;
  font:600 15px Poppins,sans-serif;z-index:9999;transition:opacity .25s,transform .25s;pointer-events:none;box-shadow:0 10px 30px rgba(0,0,0,.25);display:flex;gap:10px;align-items:center;max-width:calc(100% - 32px)}
.dzToast.on{opacity:1;transform:translate(-50%,0)}
.dzConfetti{position:fixed;inset:0;pointer-events:none;z-index:9998;overflow:hidden}
.dzConfetti i{position:absolute;top:-12px;width:10px;height:14px;border-radius:3px;animation:dzFall 1.4s ease-in forwards}
@keyframes dzFall{to{transform:translateY(105vh) rotate(540deg);opacity:.2}}
.dzPop{animation:dzPopA .5s cubic-bezier(.2,1.6,.4,1)}@keyframes dzPopA{0%{transform:scale(.6)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.dz *,.dzToast,.dzConfetti i,.dzPop{animation:none!important;transition:none!important}}
@media (max-width:640px){.dzHero{padding:18px}.dzFlame{width:84px;height:94px}.dzFlame b{top:38px;font-size:30px}.dzHero h2{font-size:23px}.dzDose{padding:16px}.dzChips{margin-left:0}}
/* In Community: ring picker + perk list (2026-11-09) */
.dzRings{border:0;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:6px 4px}
.dzRings legend{font-weight:600;color:var(--text);margin:0 0 8px;padding:0}
.dzRings label{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:60px;min-height:68px;padding:6px 2px;border-radius:14px;cursor:pointer;font-size:12.5px;color:var(--muted)}
.dzRings input{position:absolute;opacity:0;width:1px;height:1px}
.dzRings .sw{width:34px;height:34px;border-radius:50%;background:var(--elev);box-shadow:inset 0 0 0 4px var(--sw)}
.dzRings input:checked + .sw{box-shadow:inset 0 0 0 4px var(--sw),0 0 0 2px var(--surface),0 0 0 4px var(--text)}
.dzRings input:checked ~ .nm{color:var(--text);font-weight:700}
.dzRings input:focus-visible + .sw{outline:3px solid var(--dzPsychText);outline-offset:4px}
.dzPerks{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.dzPerks li{display:flex;gap:8px;align-items:flex-start;font-size:14.5px;color:var(--muted)}
.dzPerks li.on{color:var(--text)}
.dzPerks li .dzIc{margin-top:2px}
.dzPerks li.on .dzIc{color:var(--dzOk)}
