:root{--bg: #f3f2f7;--surface: #ffffff;--ink: #221e2e;--muted: #756f86;--line: #e6e3ee;--danger: #b4443c;--pro: #8a5a00;--pro-bg: #fbf3df;--r: 20px;--shadow: 0 1px 2px rgba(34, 30, 46, .05), 0 8px 24px rgba(34, 30, 46, .06);--accent: #5b50c7;--tint: #eceafb;--accent-ink: #3f37a0}[data-phase=course]{--accent: #5b50c7;--tint: #eceafb;--accent-ink: #3f37a0}[data-phase=taper]{--accent: #b96a14;--tint: #f9eedd;--accent-ink: #8f4f08}[data-phase=maint]{--accent: #2e7d5b;--tint: #e6f2ec;--accent-ink: #1f5e43}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--ink);font-variant-numeric:tabular-nums}.app{max-width:480px;margin:0 auto;height:100dvh;background:var(--bg);display:flex;flex-direction:column;overflow:hidden;position:relative;transition:background .3s}header{padding:18px 20px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-weight:800;font-size:17px;letter-spacing:-.01em}.brand small{display:block;font-weight:500;font-size:9.5px;color:var(--muted);letter-spacing:0}.segwrap{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.seglbl{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-right:4px}.seg{display:flex;background:#e4e2ec;border-radius:12px;padding:3px;gap:2px}.seg button{border:0;background:transparent;font:inherit;font-size:11.5px;font-weight:600;padding:6px 10px;border-radius:9px;color:var(--muted);cursor:pointer;transition:.15s}.seg button.on{background:var(--surface);color:var(--accent-ink);box-shadow:0 1px 3px #221e2e1f}main{flex:1;overflow-y:auto;padding:4px 16px 16px;scrollbar-width:none}main::-webkit-scrollbar{display:none}.card{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:18px;margin-bottom:12px}.card.tint{background:var(--tint);box-shadow:none}.card.primarytask{border:1.5px solid var(--tint);background:linear-gradient(145deg,#fff 0%,var(--tint) 150%)}.eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}h2{font-size:15px;font-weight:700;letter-spacing:-.01em}.sub{font-size:12.5px;color:var(--muted);line-height:1.45}.btn{display:block;width:100%;border:0;cursor:pointer;font:inherit;font-weight:700;font-size:15px;padding:14px;border-radius:14px;background:var(--accent);color:#fff;transition:transform .1s,background .2s}.btn:active{transform:scale(.98)}.btn.ghost{background:var(--tint);color:var(--accent-ink)}.btn.share-progress{margin-top:8px;border:1.5px solid var(--line);background:var(--surface);color:var(--accent-ink);padding:12px;font-size:13.5px}.btn[disabled]{background:#e4e2ec;color:#9b96aa;cursor:default}.btn:focus-visible,.seg button:focus-visible,.chip:focus-visible,.tabbar button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chipline{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 12px;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.15s}.chip.on{border-color:var(--accent);background:var(--tint);color:var(--accent-ink)}.dots{display:inline-flex;gap:2px}.dots i{width:5px;height:5px;border-radius:50%;background:#d8d5e2}.chip.on .dots i.f{background:var(--accent)}.habitline{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.habitline .hwrap{display:inline-flex;align-items:center;gap:2px}.hremove{border:0;background:none;font:inherit;font-size:11px;font-weight:600;color:var(--muted);cursor:pointer;padding:4px 6px}.hremove[disabled]{color:#c9c5d6;cursor:default}.hgrid{display:grid;gap:4px;margin-top:12px;align-items:center}.hgrid .hlabel{font-size:11px;font-weight:600;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hgrid .hcell{font-size:10.5px;text-align:center;color:#c9c5d6;font-variant-numeric:tabular-nums}.hgrid .hcell.on{color:var(--accent-ink);font-weight:700;font-size:11.5px}.prochip{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--pro);background:var(--pro-bg);border-radius:6px;padding:3px 6px;vertical-align:middle}.dialwrap{display:flex;flex-direction:column;align-items:center;padding:6px 0 2px}.dialbox{position:relative;width:212px;height:212px}.dial-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.dial-days{font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1}.dial-days small{font-size:12.5px;font-weight:600;color:var(--muted);display:block;max-width:128px;margin:5px auto 0;letter-spacing:0}.dial-dose{margin-top:7px;font-size:11.5px;font-weight:700;color:var(--accent-ink);background:var(--tint);border-radius:999px;padding:4px 10px}.row{display:flex;gap:12px}.row .card{flex:1;min-width:0;margin-bottom:0}.mb{margin-bottom:12px}.kpi{font-size:24px;font-weight:800;letter-spacing:-.02em}.kpi small{font-size:12px;font-weight:600;color:var(--muted)}.delta{font-size:12px;font-weight:700;color:var(--accent-ink)}.weeksummary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.weeksummary>div{min-width:0;border-radius:12px;background:var(--bg);padding:10px}.weeksummary span,.weeksummary b{display:block}.weeksummary span{font-size:10.5px;color:var(--muted);margin-bottom:4px}.weeksummary b{font-size:12.5px;line-height:1.3}.shotpicker{margin-top:4px}.shotpicker h2{margin-bottom:10px}.shotgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sitechoice{min-width:0;min-height:52px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:9px 10px;font:inherit;font-size:12.5px;font-weight:700;line-height:1.25;cursor:pointer}.sitechoice span,.sitechoice small{display:block}.sitechoice small{margin-top:3px;color:var(--muted);font-size:10px;font-weight:600}.sitechoice.suggested{border-color:var(--accent);background:var(--tint);color:var(--accent-ink)}.sitechoice[disabled]{opacity:.62;cursor:default}.sitechoice:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.winput{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.winput input{flex:999 1 90px;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;font-size:14px;background:var(--bg);color:var(--ink);min-width:0}.winput input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}.winput .btn{width:auto;flex:1 0 auto;padding:10px 14px;font-size:13.5px}.planform{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.planform label{display:flex;flex-direction:column;justify-content:flex-end;gap:4px;font-size:11px;font-weight:600;color:var(--muted)}.planform input{border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;font-size:14px;background:var(--bg);color:var(--ink);min-width:0;width:100%;height:44px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.planform input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}.planform .planform-wide,.planform .btn{grid-column:1 / -1}.hbars{display:flex;align-items:flex-end;gap:6px;height:72px;margin:24px 2px}.hbar{flex:1;background:var(--tint);border:1.5px solid var(--accent);border-radius:8px 8px 3px 3px;position:relative}.hbar.empty{background:transparent;border:1.5px dashed var(--line)}.hbar b{position:absolute;top:-19px;left:-3px;right:-3px;text-align:center;font-size:11px;font-weight:800;color:var(--accent-ink)}.hbar.empty b{color:var(--muted)}.hbar span{position:absolute;top:100%;margin-top:4px;left:0;right:0;text-align:center;font-size:11px;color:var(--muted)}.stairs{display:flex;align-items:flex-end;gap:6px;height:96px;margin:14px 2px 44px}.step{flex:1;background:var(--bg);border-radius:10px 10px 4px 4px;position:relative;border:1.5px solid var(--line)}.step b{position:absolute;top:-22px;left:0;right:0;text-align:center;font-size:12px;font-weight:800}.step span{position:absolute;top:100%;margin-top:5px;left:-3px;right:-3px;text-align:center;font-size:9.5px;color:var(--muted);font-weight:600;line-height:1.25}.step.done{background:var(--tint);border-color:var(--tint)}.step.cur{background:var(--accent);border-color:var(--accent)}.step.cur b{color:var(--accent-ink)}.step.next{border-style:dashed;background:transparent}.proglegend{list-style:none;display:grid;gap:9px}.proglegend li{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--muted)}.proglegend li b{margin-left:auto;color:var(--ink);font-weight:800}.proglegend i{width:11px;height:11px;border-radius:50%;flex:0 0 auto}.moodrow{display:flex;gap:8px;margin-top:12px}.moodbtn{flex:1;border:1.5px solid var(--line);background:var(--surface);border-radius:14px;padding:10px 0;font:inherit;font-size:26px;line-height:1;cursor:pointer;transition:.15s}.moodbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.moodbtn.on{border-width:2.5px;transform:translateY(-1px)}.moodtl{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 2px;scrollbar-width:none}.moodtl::-webkit-scrollbar{display:none}.moodtl .m{display:flex;flex-direction:column;align-items:center;gap:3px;flex:0 0 auto}.moodtl .m span:first-child{font-size:20px;line-height:1}.moodtl .m span:last-child{font-size:9.5px;color:var(--muted);font-weight:600}.hist{list-style:none;margin-top:6px}.hist li{display:flex;justify-content:space-between;padding:9px 2px;border-bottom:1px solid var(--line);font-size:13px}.hist li:last-child{border:0}.hist .site{color:var(--muted);font-size:12px}table.rep{width:100%;border-collapse:collapse;margin:10px 0 14px;font-size:13px}table.rep td{padding:8px 2px;border-bottom:1px solid var(--line)}table.rep td:last-child{text-align:right;font-weight:700}table.rep tr:last-child td{border:0}.flag{border-left:3px solid var(--danger);padding-left:12px}.flag ul{margin:8px 0 0 14px;font-size:12.5px;color:var(--muted);line-height:1.6}.slider{width:100%;margin:12px 0 4px;accent-color:var(--accent)}.slbl{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);font-weight:600}.titration-history{margin-top:16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.titration-title{display:flex;align-items:center;justify-content:space-between;min-height:40px;cursor:pointer;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.titration-title::-webkit-details-marker{display:none}.titration-title::marker{content:""}.titration-title:after{content:"⌄";color:var(--accent-ink);font-size:18px;line-height:1;transition:transform .15s ease}.titration-history[open] .titration-title:after{transform:rotate(180deg)}.titration-history ul{list-style:none;padding-bottom:4px}.titration-history li{display:flex;align-items:center;justify-content:space-between;min-height:32px;border-bottom:1px solid var(--line);font-size:12.5px}.titration-history li:last-child{border-bottom:0}.titration-history li span{color:var(--muted)}.titration-history li b{color:var(--accent-ink);font-weight:800}.titration-history li.effect span,.titration-history li.effect b{color:var(--danger)}.check{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line);cursor:pointer}.check:last-of-type{border:0}.check input{margin-top:2px;accent-color:var(--accent);width:16px;height:16px}.check span{font-size:13.5px;line-height:1.4}.check input:checked+span{color:var(--muted);text-decoration:line-through}.zone{cursor:pointer}.tabbar{display:flex;background:var(--surface);border-top:1px solid var(--line);padding:8px 6px calc(10px + env(safe-area-inset-bottom))}.tabbar button{flex:1;border:0;background:none;font:inherit;font-size:10.5px;font-weight:700;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;padding:4px 0;border-radius:12px}.tabbar button svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tabbar button.on{color:var(--accent-ink)}.toast{position:fixed;left:50%;bottom:86px;transform:translate(-50%) translateY(10px);background:var(--ink);color:#fff;font-size:12.5px;font-weight:600;padding:9px 16px;border-radius:999px;opacity:0;pointer-events:none;transition:.25s;max-width:86%;text-align:center;z-index:10}.toast.show{opacity:1;transform:translate(-50%)}.pulse{animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.pw-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#221e2e73;display:flex;align-items:flex-end;justify-content:center;z-index:20}.pw-sheet{background:var(--surface);border-radius:var(--r) var(--r) 0 0;width:100%;max-width:520px;max-height:88vh;overflow-y:auto;padding:20px 18px calc(18px + env(safe-area-inset-bottom,0px));box-shadow:var(--shadow)}.share-preview{display:block;width:100%;min-height:220px;max-height:42vh;resize:vertical;margin:14px 0 12px;border:1.5px solid var(--line);border-radius:14px;padding:12px;background:var(--bg);color:var(--ink);font:inherit;font-size:13px;line-height:1.45}.share-preview:focus{outline:2px solid var(--accent);border-color:transparent}.share-status{margin:-2px 0 10px;color:var(--accent-ink)}.share-cancel{display:block;margin:14px auto 2px;color:var(--muted)}.pw-benefits{list-style:none;margin:12px 0 14px;display:grid;gap:8px}.pw-benefits li{font-size:13.5px;font-weight:600;padding-left:22px;position:relative}.pw-benefits li:before{content:"✓";position:absolute;left:0;color:var(--accent-ink);font-weight:800}.pw-soon{margin-left:6px;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--bg);border-radius:999px;padding:2px 7px;vertical-align:middle}.pw-status{margin:0 0 12px;font-weight:700;color:var(--accent-ink)}.card.teaser{display:block;width:100%;text-align:left;border:0;font:inherit;cursor:pointer}.linkbtn{border:0;background:none;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}.landing{max-width:480px;margin:0 auto;min-height:100dvh;padding:40px 16px 24px;background:var(--bg)}.landing-hero{display:block;padding:0;text-align:center;margin-bottom:20px}.landing-tagline{font-size:15px;color:var(--muted);line-height:1.5;margin:10px auto 6px;max-width:340px}.landing-lead{max-width:340px;margin:0 auto 18px;color:var(--muted);font-size:13px;line-height:1.45}.landing-cta{display:inline-block;width:auto;padding:14px 28px;text-decoration:none}.landing-features{margin-top:6px}.landing-disclosure{border-top:1px solid var(--line)}.landing-disclosure:first-child{border-top:0}.landing-disclosure summary{position:relative;padding:14px 28px 14px 0;list-style:none;cursor:pointer}.landing-disclosure summary::-webkit-details-marker{display:none}.landing-disclosure summary:after{content:"+";position:absolute;top:50%;right:2px;color:var(--accent-ink);font-size:21px;font-weight:400;line-height:1;transform:translateY(-52%)}.landing-disclosure[open] summary:after{content:"−"}.landing-disclosure summary h2{margin:0;font-size:15px;line-height:1.3}.landing-feature{scroll-margin-top:16px}.landing-feature:first-child summary{padding-top:8px}.landing-feature p{padding:0 24px 14px 0;color:var(--muted);font-size:13.5px;line-height:1.48}.landing-steps{display:grid;gap:14px;margin-top:14px;padding-left:24px}.landing-steps li{padding-left:2px}.landing-steps b,.landing-steps span{display:block}.landing-steps b{font-size:14px;line-height:1.35}.landing-steps span{margin-top:3px;color:var(--muted);font-size:13px;line-height:1.45}.landing a{color:var(--accent-ink)}.landing a.landing-cta{color:#fff}.landing-login{display:grid;gap:8px;max-width:300px;margin:0 auto}.landing-login>span{color:var(--muted);font-size:12px;font-weight:600}.landing-login .landing-cta{width:100%}.landing-login .landing-cta-alt{background:#24262b}.appfoot{text-align:center;font-size:11.5px;color:var(--muted);padding:2px 0 10px}.appfoot .linkbtn{color:var(--accent-ink)}.in-telegram .landing,.in-max .landing{display:none}.brandcol{display:flex;flex-direction:column;gap:3px}.brandrow{display:flex;align-items:center;gap:8px}.brandlogo{width:28px;height:28px;border-radius:8px;display:block}.brandsub{font-weight:500;font-size:9.5px;color:var(--muted)}.landing-faq{margin-top:6px}.landing-faq .landing-disclosure:first-child summary{padding-top:8px}.landing-faq .landing-disclosure p{margin:0;padding:0 24px 14px 0;line-height:1.48}.first-run{min-height:100dvh;max-width:480px;margin:0 auto;padding:18px 16px 32px;background:var(--bg)}.first-run-brand{display:flex;align-items:center;gap:10px;padding:0 4px 16px}.first-run-brand img{width:38px;height:38px;border-radius:11px}.first-run-brand div{display:flex;flex-direction:column;gap:2px}.first-run-brand b{font-size:19px}.first-run-brand span{font-size:11px;color:var(--muted)}.first-run-card{padding:22px}.first-run-card h1{font-size:22px;line-height:1.2;margin-bottom:10px}.first-run-card .btn{margin-top:16px}.first-run-list{padding-left:20px;margin:14px 0;display:grid;gap:8px}.first-run-list li{font-size:13px;line-height:1.4}.first-run-policy{display:block;margin-top:14px;text-align:center;color:var(--accent-ink);font-size:12px}.first-run-link-toggle{display:block;margin:14px auto 0;font-size:12px}.first-run-link{display:grid;gap:8px;margin-top:10px}.first-run-link input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;color:var(--ink);font:inherit;text-transform:uppercase}.first-run-link .btn{margin-top:0}.form-error{color:var(--danger);font-size:12px;line-height:1.4;margin-top:10px}.setup-card{display:grid;gap:14px}.setup-card h1{margin-bottom:-6px}.setup-card fieldset{border:0;display:grid;gap:8px}.setup-card legend,.setup-card>label,.setup-row label{display:grid;gap:6px;font-size:12px;font-weight:700;color:var(--ink)}.setup-card label>span{color:var(--muted);font-weight:500}.setup-card input,.setup-card select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;color:var(--ink);font:inherit;font-size:14px}.setup-card input[disabled]{background:var(--bg);color:var(--muted)}.setup-card small,.setup-note{color:var(--muted);font-size:11px;line-height:1.35}.choice-grid{display:grid;grid-template-columns:1fr;gap:7px}.choice{border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:#fff;color:var(--ink);font:inherit;font-size:13px;font-weight:600;text-align:left}.choice.active{border-color:var(--accent);background:var(--tint);color:var(--accent-ink)}.setup-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.setup-card label.setup-check{display:flex;align-items:flex-start;gap:9px;font-weight:500;line-height:1.35}.setup-card label.setup-check>span{color:var(--ink)}.setup-check input{width:20px;min-height:20px;height:20px;flex:0 0 20px;padding:0}.browser-login .first-run-card .btn{text-align:center;text-decoration:none}.browser-login-open{color:#fff}.browser-login-back{display:block;margin:16px auto 0}.account-screen{display:block}.account-intro h2{font-size:19px;line-height:1.25;margin:6px 0 8px}.account-providers{display:grid;gap:0}.account-provider{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.account-provider>div{display:grid;gap:3px}.account-provider b,.account-session b{font-size:14px}.account-provider span{color:var(--muted);font-size:12px}.account-provider .account-connected{color:#1f6a49;background:#e6f2ec;border-radius:999px;padding:6px 10px;font-weight:700}.account-provider .account-connect{width:auto;margin:0;padding:9px 12px;font-size:12px}.account-refresh{margin:14px auto 2px}.account-message{color:var(--muted);font-size:12px;line-height:1.4;margin-top:10px}.account-delivery h2,.delivery-prompt h2{font-size:19px;line-height:1.25;margin:6px 0 8px}.delivery-picker .sub{margin:0}.delivery-current{margin:8px 0 0;color:var(--accent-ink);font-size:12px;line-height:1.4}.delivery-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.delivery-option{display:grid;gap:3px;min-height:58px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);font:inherit;text-align:left}.delivery-option span{font-size:14px;font-weight:800}.delivery-option small{color:var(--muted);font-size:11px}.delivery-option.on{border-color:var(--accent);background:var(--tint);color:var(--accent-ink)}.delivery-option:disabled{opacity:.65}.delivery-prompt{padding-top:22px}.account-session{display:grid;gap:12px}.account-session .sub{margin-top:4px}.account-session .btn{margin:0}@media(max-width:390px){.tabbar button{font-size:9.5px}}
