/* ===== Zéro Mise v11 — vert nuit / menthe ===== */
@font-face{font-family:"Inter";src:url(inter.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
:root{
  --bg:#F6F6F3;--card:#EDEFEB;--card2:#FFFFFF;--ink:#0E1A14;--ink2:#56615A;--ink3:#8B958E;--line:#E2E5E0;
  --mint:#5EE88A;--mint2:#7DF0A2;--mint-soft:#E2F5E7;--deep:#1F8F4E;
  --dark:#0E1A14;--dark2:#15241C;--dark3:#1D2F25;--dline:rgba(255,255,255,.09);
  --red:#D93B2B;--r:20px;--ease:cubic-bezier(.32,.72,0,1);
  --green:var(--deep);--green-soft:var(--mint-soft)
}
html,body{height:100%;background:#E4E6E1}
html:has(#app.ob),html:has(#app.ob) body,html:has(#sos-ov.show),html:has(#sos-ov.show) body{background:var(--dark)}
body{font-family:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;color:var(--ink);font-size:16px;line-height:1.38;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-feature-settings:"cv11","ss01"}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;text-align:inherit}
button:disabled{cursor:default}
input,textarea{font:inherit}
:focus-visible{outline:2px solid var(--deep);outline-offset:2px}
.ibtn:focus,.x:focus,button:focus:not(:focus-visible){outline:none!important}
.num{font-variant-numeric:tabular-nums}
.center{text-align:center}
#app{position:relative;max-width:430px;height:100vh;height:100dvh;margin:0 auto;background:var(--bg);display:flex;flex-direction:column;overflow:hidden;transition:background-color .3s}
#app.ob{background:var(--dark);color:#fff}
.scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;padding:calc(8px + env(safe-area-inset-top)) 20px 44px}
#app.ob .scroll{padding:0}
.screen{display:none}.screen.on{display:block;animation:fade .3s var(--ease)}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
h1{font-size:30px;line-height:1.15;font-weight:800;letter-spacing:-.03em;margin:14px 0 16px}
h2{font-size:22px;line-height:1.22;font-weight:750;letter-spacing:-.02em}
h3{font-size:17px;line-height:1.3;font-weight:650;letter-spacing:-.01em}
.sub{color:var(--ink2);font-size:15px;line-height:1.45}
.small{font-size:13px;color:var(--ink2);line-height:1.38}
.fine{font-size:12px;color:var(--ink3)}
.card{background:var(--card);border-radius:var(--r);padding:18px;margin-bottom:12px}
.card.mint{background:var(--mint-soft)}
.label{font-size:12px;font-weight:650;color:var(--ink3);text-transform:uppercase;letter-spacing:.07em;margin:22px 4px 8px}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px}
/* buttons */
.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:54px;border-radius:999px;background:var(--ink);color:#fff;font-weight:650;font-size:17px;padding:12px 20px;text-align:center;text-decoration:none;letter-spacing:-.01em;transition:transform .15s var(--ease),background-color .2s,color .2s}
.btn.mint{background:var(--mint);color:var(--ink)}
.btn.ghost{background:var(--card);color:var(--ink)}
.btn.done{background:var(--mint-soft);color:var(--deep)}
.btn.sos{background:var(--red);color:#fff}
.btn.light{background:#fff;color:var(--ink)}
.btn+.btn{margin-top:10px}
.btn:active,.chip:active,.plan:active,.ibtn:active,.tabbar button:active,.link:active,.lcard:active,.li:active,.seg button:active{transform:scale(.97)}
.ibtn{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;color:var(--ink);transition:transform .15s var(--ease),opacity .2s}
.ibtn.bg{background:var(--card)}
.ibtn:disabled{opacity:.3;transform:none}
.link{color:var(--deep);font-weight:650;font-size:15px;min-height:44px;padding:0 4px}
.back{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-left:-8px;padding:0 8px;font-size:15px;font-weight:600;color:var(--ink)}
/* logo */
.logo{position:relative;display:inline-flex;flex-direction:column;font-weight:900;font-size:22px;line-height:.86;letter-spacing:-.045em;color:var(--ink);text-transform:uppercase}
.logo span{display:block}
.logo::after{content:"";position:absolute;left:1px;top:calc(50% - 1.5px);width:.62em;height:3px;border-radius:2px;background:var(--mint)}
.logo.lg{font-size:36px}
.logo.light{color:#fff}
/* fields & chips */
.field{background:var(--card);border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;min-height:54px;margin-bottom:8px}
.field input{border:0;background:none;text-align:right;color:var(--ink);font-weight:650;min-height:44px;min-width:0;flex:1;font-variant-numeric:tabular-nums}
.field input:focus{outline:none}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-height:44px;padding:0 18px;border-radius:99px;background:var(--card);font-size:15px;font-weight:550;transition:transform .15s var(--ease),background-color .2s,color .2s}
.chip.on{background:var(--ink);color:#fff}
/* onboarding (dark) */
#s-ob{color:#fff;min-height:100%}
.ob-a{position:relative;min-height:calc(100dvh - 0px);display:flex;flex-direction:column;padding:calc(36px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));overflow:hidden}
.ob-a .logo{align-self:center;margin-top:8px}
.ob-h{font-size:30px;font-weight:800;letter-spacing:-.035em;line-height:1.1;margin-top:48px;position:relative;z-index:1}
.ob-p{font-size:17px;line-height:1.45;color:rgba(255,255,255,.82);margin-top:12px;position:relative;z-index:1}
.ob-land{position:relative;flex:0 0 auto;height:min(46vh,360px);margin:auto -24px 0}
.ob-land svg{position:absolute;left:0;right:0;bottom:0;width:100%;height:100%}
.ob-a .btn{position:relative;z-index:1}
.ob-foot{text-align:center;font-size:13px;color:rgba(255,255,255,.62);margin-top:14px;position:relative;z-index:1}
.ob-foot button{color:#fff;text-decoration:underline;text-underline-offset:3px;font-size:13px;min-height:32px}
.ob-b{padding:calc(16px + env(safe-area-inset-top)) 24px calc(28px + env(safe-area-inset-bottom))}
.ob-b .back{color:#fff}
.ob-b h2{font-size:28px;margin:10px 0 6px;letter-spacing:-.03em}
.ob-b .sub{color:rgba(255,255,255,.7)}
.ob-b .label{color:rgba(255,255,255,.5)}
.ob-b .field{background:var(--dark3);color:#fff}
.ob-b .field input{color:var(--mint);color-scheme:dark}
.ob-b .chip{background:var(--dark3);color:#fff}
.ob-b .chip.on{background:var(--mint);color:var(--ink)}
.ob-b .fine{color:rgba(255,255,255,.5);margin:8px 4px 0}
/* top bar */
.topbar{display:flex;align-items:center;justify-content:space-between;min-height:48px;margin-top:6px}
/* today */
.td-hero{text-align:center;padding:18px 0 4px}
.td-day{font-size:17px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.td-streak{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--ink2);margin-top:4px}
.td-streak svg{color:var(--deep)}
.td-money{font-size:68px;line-height:1;font-weight:850;letter-spacing:-.055em;color:var(--deep);margin-top:26px;font-variant-numeric:tabular-nums;white-space:nowrap}
.td-nm{font-size:28px;font-weight:800;letter-spacing:-.035em;margin-top:6px}
.td-msg{font-size:16px;color:var(--ink2);line-height:1.45;margin:22px auto 26px;max-width:18em}
.pcard{background:var(--card);border-radius:var(--r);padding:16px 18px 18px;margin-bottom:16px}
.pcard .row{font-size:15px;font-weight:600}
.pcard .row .small{font-weight:500;font-size:12px}
.bar{height:10px;border-radius:99px;background:#DEE2DD;overflow:hidden;margin-top:14px}
.bar i{display:block;height:100%;width:0;background:var(--mint);border-radius:99px;transition:width .8s var(--ease)}
.td-next{margin-top:10px}
.lcard{display:flex;align-items:center;gap:14px;width:100%;text-align:left}
.lcard .grow{flex:1;min-width:0}
.eyebrow{font-size:12px;font-weight:650;color:var(--deep);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;font-variant-numeric:tabular-nums}
.quote{font-size:20px;font-weight:750;letter-spacing:-.02em;margin-top:4px}
.ok{display:flex;gap:8px;align-items:center;color:var(--deep);font-weight:650}
.sec{margin-top:26px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:44px;background:transparent}
input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:99px;background:linear-gradient(90deg,var(--mint),#DDE2DC)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;margin-top:-10px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.22),0 0 0 1px rgba(0,0,0,.04)}
input[type=range]::-moz-range-track{height:8px;border-radius:99px;background:linear-gradient(90deg,var(--mint),#DDE2DC)}
input[type=range]::-moz-range-thumb{width:28px;height:28px;border:0;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.22)}
/* progression */
.seg{display:flex;gap:6px;background:transparent;margin:0 0 16px}
.seg button{flex:1;min-height:40px;border-radius:99px;border:1px solid var(--line);background:var(--card2);font-size:14px;font-weight:600;color:var(--ink2);text-align:center;transition:background-color .2s,color .2s,transform .15s var(--ease)}
.seg button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.stat{display:flex;gap:14px;align-items:flex-start}
.stat .ic{width:28px;height:28px;flex:none;display:grid;place-items:center;color:var(--ink);margin-top:1px}
.stat .grow{flex:1;min-width:0}
.stat .k{font-size:14px;font-weight:550}
.stat .v{display:flex;align-items:center;gap:6px;font-size:30px;font-weight:800;letter-spacing:-.04em;line-height:1.1;margin-top:4px;font-variant-numeric:tabular-nums}
.stat .v svg{color:var(--deep)}
.stat .d{font-size:13px;color:var(--deep);font-weight:550;margin-top:4px;font-variant-numeric:tabular-nums}
.stat .n{font-size:12px;color:var(--ink3);margin-top:6px;line-height:1.35}
.kv{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid rgba(14,26,20,.06);font-size:15px}
.kv:first-of-type{border-top:0}
.kv b{font-variant-numeric:tabular-nums}
.dots{display:flex;justify-content:space-between;gap:4px;margin-top:10px}
.dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;flex:none;border:1.5px solid #CDD3CD;color:#fff}
.dot.g{background:var(--deep);border-color:var(--deep)}
.dot.r{background:var(--red);border-color:var(--red)}
.dot.t{border:2px solid var(--deep);background:conic-gradient(var(--deep) 0 50%,transparent 50% 100%)}
.dot.t.g{background:var(--deep)}
.dot.t.r{background:var(--red);border-color:var(--red)}
.dot svg{width:13px;height:13px}
.dotlab{display:flex;justify-content:space-between;margin-top:6px;font-size:11px;color:var(--ink3)}
/* calendar */
.x-calh{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.x-calh h3{text-transform:capitalize}
.x-calh button{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--ink)}
.x-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px 0;text-align:center}
.x-cal .wd{font-size:12px;font-weight:600;color:var(--ink3);padding:4px 0}
.x-cal button,.x-cal span.d{justify-self:center;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:15px;font-weight:550;font-variant-numeric:tabular-nums}
.x-cal .g{background:var(--mint);color:var(--ink);font-weight:700}
.x-cal .r{background:var(--red);color:#fff;font-weight:700}
.x-cal .t{box-shadow:inset 0 0 0 2px var(--ink)}
.x-cal .g.t,.x-cal .r.t{box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--ink)}
.x-cal .f{color:var(--ink3);opacity:.5}
.x-leg{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:13px;color:var(--ink2)}
.x-leg i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
/* badges (hexagones) */
.tro-card{display:block;width:100%;text-align:left;cursor:pointer}
.tro-row{display:flex;gap:10px;margin-top:12px;justify-content:space-between}
.medal{display:block;width:52px;height:56px;flex:none;position:relative}
.medal svg{width:100%;height:100%;display:block}
.medal .hb{fill:#DCE1DC;stroke:#DCE1DC}.medal .ht{fill:#97A19A}.medal .hk{stroke:#97A19A}
.medal.on .hb{fill:var(--mint);stroke:var(--mint)}.medal.on .ht{fill:var(--ink)}.medal.on .hk{stroke:var(--ink)}
.sheet.dark .medal .hb{fill:#22342A;stroke:#22342A}.sheet.dark .medal .ht{fill:#6F7D74}.sheet.dark .medal .hk{stroke:#6F7D74}
.sheet.dark .medal.on .hb{fill:var(--mint);stroke:var(--mint)}.sheet.dark .medal.on .ht{fill:var(--ink)}.sheet.dark .medal.on .hk{stroke:var(--ink)}
.medal.on svg{filter:drop-shadow(0 6px 14px rgba(94,232,138,.35))}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px 8px;margin:14px 0 6px}
.tcell{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}
.tcell .medal{width:68px;height:74px}
.tcell b{font-size:14px;line-height:1.2;font-weight:700}
.tcell span{font-size:12px;color:var(--ink2);line-height:1.25}
.sheet.dark .tcell span{color:rgba(255,255,255,.6)}
.tcell .medal.on{animation:pop .5s var(--ease) both}
@keyframes pop{0%{transform:scale(.85)}60%{transform:scale(1.06)}100%{transform:scale(1)}}
.tbar{height:6px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden;margin:12px 0 4px}
.tbar i{display:block;height:100%;background:var(--mint);border-radius:99px}
.tsec{font-size:15px;font-weight:700;margin:26px 0 0;padding-top:20px;border-top:1px solid var(--dline)}
.tsec:first-of-type{border-top:0;padding-top:0}
/* lists */
.list{background:var(--card);border-radius:var(--r);overflow:hidden;margin-bottom:12px}
.li{display:flex;align-items:center;gap:14px;min-height:56px;padding:10px 16px;border-bottom:1px solid rgba(14,26,20,.06);width:100%;text-align:left;text-decoration:none;color:inherit;transition:background-color .15s,transform .15s var(--ease)}
button.li:active,a.li:active{background:rgba(14,26,20,.04)}
.li:last-child{border-bottom:0}
.li .grow{flex:1;min-width:0}
.li .t1{display:block;font-size:16px;font-weight:600}
.li .t2{display:block;font-size:13px;color:var(--ink2);margin-top:2px}
.lic{width:38px;height:38px;border-radius:50%;background:var(--card2);display:grid;place-items:center;flex:none;color:var(--ink)}
.check{width:26px;height:26px;border-radius:50%;border:1.5px solid #C9CFC9;display:grid;place-items:center;flex:none;color:transparent}
.check.on{background:var(--deep);border-color:var(--deep);color:#fff}
.tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:650;padding:3px 9px;border-radius:99px;background:var(--mint-soft);color:var(--deep);white-space:nowrap;vertical-align:middle;text-transform:none;letter-spacing:0}
.tag.prem{background:var(--ink);color:#fff}
.chev{color:#9AA39C;flex:none;display:grid;place-items:center}
.pt.lk .grow,.pt.lk .pti{opacity:.55}
.pti{width:38px;height:38px;border-radius:50%;background:var(--card2);color:var(--ink);display:grid;place-items:center;flex:none}
/* help cards */
.hcard{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--mint-soft);border-radius:var(--r);padding:20px 18px;margin-bottom:12px;box-shadow:0 8px 24px -14px rgba(31,143,78,.55)}
.hcard .lic{background:#fff;color:var(--deep);width:44px;height:44px}
.hcard .play{width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;flex:none}
.calm{height:150px;border-radius:var(--r);overflow:hidden;margin:16px 0 18px;position:relative}
.calm svg{width:100%;height:100%;display:block}
/* programme */
.pcount{font-size:34px;font-weight:800;letter-spacing:-.04em;line-height:1.1;font-variant-numeric:tabular-nums}
.pcount span{font-size:17px;font-weight:600;color:var(--ink2);letter-spacing:0}
.wk{margin-top:28px}
.wk-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 4px 10px}
.wk-head>div{min-width:0}
.wk-eyebrow{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:650;color:var(--ink3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px;font-variant-numeric:tabular-nums}
.wk-head h2{font-size:20px}
.wk-count{flex:none;font-size:13px;color:var(--ink2);font-variant-numeric:tabular-nums;padding-bottom:3px}
.ls .dn{width:32px;height:32px;border-radius:50%;background:var(--card2);display:grid;place-items:center;font-size:14px;font-weight:650;font-variant-numeric:tabular-nums;flex:none}
.ls.today .dn{background:var(--ink);color:#fff}
.ls.done .dn{background:var(--mint);color:var(--ink)}
.ls .t{display:block;font-size:16px;font-weight:550;line-height:1.3}
.ls .m{display:block;font-size:13px;color:var(--ink2);margin-top:2px;font-variant-numeric:tabular-nums}
.ls.locked .t,.ls.locked .dn{color:var(--ink3)}
.st{flex:none;width:24px;height:24px;display:grid;place-items:center;color:var(--ink3)}
.st.done{background:var(--deep);border-radius:50%;color:#fff}
/* profil */
.pf-head{display:flex;align-items:center;gap:16px}
.pf-av{position:relative;width:68px;height:68px;border-radius:50%;padding:0;border:0;background:none;flex:none}
.pf-av img,.pf-mono{width:68px;height:68px;border-radius:50%;object-fit:cover;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;font-weight:750}
.pf-av-ed{position:absolute;right:-2px;bottom:-2px;width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px var(--card)}
.pf-name{width:100%;border:0;background:transparent;font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--ink);padding:2px 0;outline:0}
.pf-name::placeholder{color:#A0A8A2}
.pmini{display:flex;align-items:center;gap:14px;width:100%;text-align:left}
.pmini .pf-mono,.pmini img{width:52px;height:52px;font-size:22px;border-radius:50%;object-fit:cover}
.av-grid{display:grid;grid-template-columns:repeat(2,64px);justify-content:center;gap:20px;margin-top:18px}
.av-grid button{aspect-ratio:1;border-radius:50%;border:0;color:#fff;font-weight:700;font-size:18px;display:flex;align-items:center;justify-content:center;padding:0;min-width:0}
.sosin{display:flex;align-items:center;gap:12px;border-top:1px solid rgba(14,26,20,.07);min-height:52px}
.sosin .dn{width:24px;height:24px;border-radius:50%;background:var(--mint);color:var(--ink);display:grid;place-items:center;font-size:13px;font-weight:750;flex:none}
.sosin input{flex:1;min-width:0;font-size:16px;border:0;background:none;min-height:44px;color:var(--ink)}
.sosin input:focus{outline:none}
.hin{width:60px;text-align:right;border:0;background:var(--card2);border-radius:10px;padding:8px 10px;font-weight:650;font-size:15px;color:var(--ink)}
.tog{width:51px;height:31px;border-radius:99px;background:#D5DAD4;position:relative;flex:none;transition:background .2s}
.tog::after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .25s var(--ease)}
.tog.on{background:var(--deep)}.tog.on::after{transform:translateX(20px)}
.flag{display:flex;align-items:center;justify-content:center;gap:7px;margin:18px 0 4px}
/* tabbar */
.tabbar{position:relative;z-index:5;flex:none;display:flex;align-items:flex-end;background:rgba(246,246,243,.94);border-top:1px solid var(--line);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);padding:0 6px env(safe-area-inset-bottom);overflow:visible}
.tabbar button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 0 6px;font-size:10.5px;font-weight:550;color:#7E8881;min-height:54px;transition:color .2s,transform .15s var(--ease);letter-spacing:-.005em}
.tabbar button.on{color:var(--deep);font-weight:650}
.tabbar svg{width:24px;height:24px}
.tabbar button.x-sos{color:var(--red);font-weight:700;padding-top:0}
.x-sos__c{width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#EE5A45,#C42F1F);color:#fff;display:grid;place-items:center;margin-top:-24px;margin-bottom:1px;box-shadow:0 8px 20px -4px rgba(217,59,43,.55),0 0 0 4px var(--bg);animation:pulse 2.6s ease-out infinite}
.x-sos__c svg{width:28px;height:28px}
@keyframes pulse{0%{box-shadow:0 8px 20px -4px rgba(217,59,43,.55),0 0 0 4px var(--bg),0 0 0 4px rgba(217,59,43,.35)}70%,100%{box-shadow:0 8px 20px -4px rgba(217,59,43,.55),0 0 0 4px var(--bg),0 0 0 18px rgba(217,59,43,0)}}
.tabbar button.x-sos.on .x-sos__c{box-shadow:0 8px 20px -4px rgba(217,59,43,.55),0 0 0 4px var(--bg),0 0 0 7px rgba(217,59,43,.25)}
/* overlays */
.overlay{position:absolute;inset:0;z-index:20;visibility:hidden;pointer-events:none;transition:visibility 0s linear .4s}
.overlay.show{visibility:visible;pointer-events:auto;transition:none}
.dim{position:absolute;inset:0;background:rgba(14,26,20,.45);opacity:0;transition:opacity .35s ease}
.overlay.show .dim{opacity:1}
.panel{transform:translateY(105%);transition:transform .4s var(--ease)}
.overlay.show .panel{transform:none}
.sheet{position:absolute;left:0;right:0;bottom:0;max-height:92%;overflow-y:auto;overscroll-behavior:contain;background:var(--bg);border-radius:26px 26px 0 0;padding:8px 20px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -8px 32px rgba(0,0,0,.14)}
.sheet.full{top:calc(10px + env(safe-area-inset-top));max-height:none;padding-bottom:calc(32px + env(safe-area-inset-bottom))}
#reader.sheet.full{padding:0 0 calc(32px + env(safe-area-inset-bottom))}
.grab{width:36px;height:5px;border-radius:3px;background:#CDD2CC;margin:0 auto 8px}
.sheet .close{position:absolute;top:10px;right:10px;background:rgba(14,26,20,.06)!important}
.sheet.dark{background:var(--dark);color:#fff}
.sheet.dark .grab{background:rgba(255,255,255,.2)}
.sheet.dark .close{background:rgba(255,255,255,.1)!important;color:#fff}
.sheet.dark .sub,.sheet.dark .small{color:rgba(255,255,255,.66)}
.sheet.dark .card,.sheet.dark .jent{background:var(--dark2);border:1px solid var(--dline)}
.sheet.dark .fld{background:var(--dark2);border-color:var(--dline);color:#fff;color-scheme:dark}
.sheet.dark .eyebrow{color:var(--mint)}
.sheet.dark .ck{border-bottom-color:var(--dline)}
.sheet.dark .check{border-color:rgba(255,255,255,.3)}
.sheet.dark .check.on{background:var(--mint);border-color:var(--mint);color:var(--ink)}
.sheet.dark .btn:not(.sos){background:var(--mint);color:var(--ink)}
.sheet.dark .btn.ghost{background:var(--dark2);color:#fff}
.sheet.dark .tag{background:rgba(94,232,138,.14);color:var(--mint)}
.mpill{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:99px;background:var(--dark2);border:1px solid var(--dline);font-size:14px;font-weight:600;margin-top:8px}
.mcard{display:flex;gap:14px;align-items:center;background:var(--dark2);border:1px solid var(--dline);border-radius:var(--r);padding:16px;margin:18px 0 6px}
.mcard .ball{width:52px;height:52px;border-radius:14px;background:#fff;color:var(--ink);display:grid;place-items:center;flex:none}
.rem{list-style:none;margin:8px 0 0}
.rem li{display:flex;gap:10px;align-items:center;padding:6px 0;font-size:15px}
.rem li span{width:18px;height:18px;border-radius:50%;background:var(--mint);color:var(--ink);display:grid;place-items:center;flex:none}
.plan{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--card);border:2px solid transparent;border-radius:18px;padding:16px;margin-bottom:8px;min-height:64px;transition:transform .15s var(--ease),border-color .2s}
.plan.on{border-color:var(--deep);background:var(--mint-soft)}
.radio{width:22px;height:22px;border-radius:50%;border:2px solid #C9CFC9;flex:none;transition:border .2s}
.plan.on .radio{border:7px solid var(--deep)}
.badge{font-size:12px;font-weight:750;color:var(--ink);background:var(--mint);border-radius:99px;padding:4px 9px;flex:none}
.ben{display:flex;gap:12px;align-items:center;padding:8px 0}
.fld{display:block;width:100%;font-size:16px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card2);color:var(--ink);margin-bottom:8px}
textarea.fld{min-height:110px;resize:vertical}
.sgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.sgrid div{background:var(--card);border-radius:16px;padding:12px}
.sgrid b{display:block;font-size:24px;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.wbars{display:flex;align-items:flex-end;gap:6px;height:110px;margin:8px 0 4px}
.wbars span{flex:1;background:var(--mint);border-radius:6px 6px 0 0;min-height:3px}
.wlab{display:flex;gap:6px}.wlab span{flex:1;text-align:center;font-size:12px;color:var(--ink2)}
.ck{display:flex;gap:12px;align-items:center;width:100%;padding:12px 0;border-bottom:1px solid var(--line);text-align:left}
.ck .check{flex:none}
.jent{background:var(--card);border-radius:16px;padding:12px;margin-bottom:8px}
.mood{display:flex;gap:8px;margin-bottom:8px}.mood button{flex:1;padding:10px 4px;border-radius:99px;background:var(--card);font-size:14px;text-align:center;font-weight:550}
.mood button.on{background:var(--ink);color:#fff}
.step{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}
.step b.n{width:34px;height:34px;border-radius:50%;background:var(--mint);display:grid;place-items:center;font-size:16px;flex:none}
/* reader */
.rd-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:rgba(246,246,243,.94);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:26px 26px 0 0}
.rd-nav{display:flex;gap:8px}
.rd{max-width:36em;margin:0 auto;padding:8px 24px 0}
.rd-meta{font-size:12px;font-weight:650;color:var(--deep);text-transform:uppercase;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.rd h2{font-size:30px;line-height:1.12;letter-spacing:-.035em;margin:8px 0 22px;font-weight:800}
.rd-text{font-size:17px;line-height:1.6}
.rd-ex{margin:24px 0 0}
.rd-ex .eb{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);margin-bottom:8px}
.rd-ex p:last-child{font-size:17px;line-height:1.55}
.rd-key{margin:24px 0 32px;padding:18px 18px 18px 20px;background:var(--dark);color:#fff;border-radius:var(--r);font-size:20px;line-height:1.38;font-weight:700;letter-spacing:-.02em;position:relative}
.rd-key::before{content:"";position:absolute;left:20px;top:0;width:28px;height:3px;background:var(--mint);border-radius:0 0 3px 3px}
.rd-foot{margin-top:16px}
/* 10-minute help overlay */
#sos-ov{position:fixed;inset:0;z-index:50}
#sos-ov .dim{display:none}
#sos-ov .sos{position:absolute;inset:0;background:radial-gradient(120% 60% at 50% 18%,#1E3A2A 0%,#0E1A14 60%);color:#fff;display:flex;flex-direction:column;padding:calc(8px + env(safe-area-inset-top)) 20px calc(16px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}
.sos .x{align-self:flex-end;min-height:38px;padding:0 16px;margin-top:6px;border-radius:999px;background:rgba(255,255,255,.1);color:#fff;font-size:15px;font-weight:600}
.timer{font-size:68px;font-weight:200;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1.1}
.sos .msg{text-align:center;font-size:18px;font-weight:650;margin-top:6px;letter-spacing:-.01em}
.breath{position:relative;flex:none;height:200px;display:grid;place-items:center;margin:8px 0 14px}
.circle{width:92px;height:92px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--mint2),#2FBF66 70%);box-shadow:0 0 44px rgba(94,232,138,.4);animation:br 14s infinite ease-in-out}
.breath .bl{position:absolute;font-weight:700;font-size:16px;color:var(--ink)}
.breath::before,.breath::after{content:"";position:absolute;left:50%;top:50%;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;border:1px solid rgba(94,232,138,.35);animation:ripple 4s ease-out infinite}
.breath::after{animation-delay:2s}
@keyframes ripple{from{transform:scale(1);opacity:.9}to{transform:scale(2.6);opacity:0}}
@keyframes br{0%{transform:scale(1)}28.57%{transform:scale(1.8)}57.14%{transform:scale(1.8)}100%{transform:scale(1)}}
.splan{background:rgba(255,255,255,.06);border:1px solid var(--dline);border-radius:20px;padding:16px;margin-bottom:16px}
.splan h3{font-size:12px;text-transform:uppercase;letter-spacing:.07em;opacity:.65;margin-bottom:8px}
.splan ol{list-style:none}
.splan li{display:flex;gap:12px;align-items:center;padding:6px 0;font-size:17px;font-weight:550}
.splan li span{width:24px;height:24px;border-radius:50%;background:var(--mint);color:var(--ink);display:grid;place-items:center;font-size:13px;font-weight:750;flex:none}
.sos .fine{font-size:12px;color:rgba(255,255,255,.62);text-align:center;margin:8px 0 14px}
.sos .btn:not(.light){background:var(--mint);color:var(--ink)}
/* toast */
.toast{position:absolute;left:16px;right:16px;top:calc(12px + env(safe-area-inset-top));margin:0 auto;width:max-content;max-width:calc(100% - 32px);display:flex;align-items:center;gap:8px;background:var(--ink);color:#fff;font-size:15px;font-weight:600;line-height:1.3;padding:12px 16px;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.2);opacity:0;transform:translateY(-16px);transition:opacity .25s,transform .35s var(--ease);z-index:60;pointer-events:none}
.toast.on{opacity:1;transform:none}
.toast .check{width:22px;height:22px;background:var(--mint);border-color:var(--mint);color:var(--ink)}
#print{display:none}
@media print{#app{display:none!important}#print{display:block;font-family:Georgia,serif;color:#000;padding:24px}#print h1{font-size:24px;margin-bottom:4px}#print h2{font-size:16px;margin:18px 0 6px}#print table{border-collapse:collapse;width:100%;font-size:13px}#print td{border:1px solid #bbb;padding:6px}#print p{font-size:13px;margin:4px 0}}
@media (max-height:700px){.timer{font-size:52px}.breath{height:160px}.td-money{font-size:56px;margin-top:16px}.td-msg{margin:14px auto 18px}.ob-h{margin-top:28px}}
@media (max-width:350px){.td-money{font-size:54px}.dot{width:22px;height:22px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important}.circle,.x-sos__c{animation:none!important}}

/* v12: dark full sheets cover the whole screen, no light edge behind */
html:has(#sheet-ov.show #sheet.dark.full),html:has(#sheet-ov.show #sheet.dark.full) body{background:var(--dark)}
#sheet-ov:has(.sheet.dark.full) .dim{background:var(--dark)}
.sheet.dark.full{top:0;border-radius:0;padding-top:calc(8px + env(safe-area-inset-top));box-shadow:none}
.sheet.dark.full .close{top:calc(10px + env(safe-area-inset-top))}

.gopro{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--dark);color:#fff;border:0;font:inherit;cursor:pointer}
.gopro[hidden]{display:none}
.gopro .grow{flex:1;min-width:0}
.gp-ic{width:40px;height:40px;border-radius:12px;background:rgba(94,232,138,.14);color:var(--mint);display:grid;place-items:center;flex:none}
.gp-t{display:block;font-weight:750;font-size:16px;letter-spacing:-.01em}
.gp-s{display:block;font-size:13px;color:rgba(255,255,255,.66);margin-top:2px;line-height:1.35}
.gp-b{background:var(--mint);color:var(--ink);font-weight:700;font-size:14px;border-radius:999px;padding:8px 14px;flex:none}
.gopro:active{transform:scale(.97)}
