/* Shared palette, press and stagger vocabulary from the existing shell. */
.h20-page,.h20-dialog{font-family:var(--s20-font);color:var(--s20-ink);font-size:1rem;line-height:1.6;box-sizing:border-box;}
.h20-page{display:grid;gap:24px;max-width:900px;margin:auto;}
.h20-page>.back{justify-self:start;}.h20-page h1{font-size:clamp(1.8rem,5vw,2.5rem);line-height:1.3;margin:0;letter-spacing:-.035em;}
.h20-page h2,.h20-dialog h2{font-size:1.15rem;line-height:1.5;margin:0;}
.h20-page p,.h20-dialog p{margin:8px 0;overflow-wrap:anywhere;}
.h20-page small,.h20-dialog small{color:var(--s20-muted);font-size:.8rem;}
.h20-card{padding:22px;border:1px solid var(--s20-line);border-radius:24px;background:var(--s20-surface);}
.h20-link,.h20-select{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:8px 4px;border:0;background:none;color:var(--s20-accent);text-decoration:none;font:inherit;cursor:pointer;box-sizing:border-box;}
.h20-link:focus-visible,.h20-select:focus-visible,.h20-action:focus-visible,.h20-close:focus-visible{outline:3px solid var(--s20-accent);outline-offset:4px;}
.h20-action{border:0;border-radius:20px;background:var(--s20-accent);color:var(--s20-on);font:700 1rem/1.5 var(--s20-font);padding:17px 24px;min-height:58px;width:100%;cursor:pointer;box-sizing:border-box;transition:transform .13s;}
.h20-action:active,.h20-select:active{transform:scale(.97);}.h20-action:disabled{opacity:.5;cursor:default;}
.h20-ripi{object-fit:contain;display:block;max-width:100%;align-self:center;justify-self:center;}
.h20-ripi[data-mood=happy]{transform:rotate(-4deg);}.h20-ripi[data-mood=special]{transform:rotate(5deg) scale(1.1);filter:drop-shadow(0 0 14px #d9a21f66);}
.h20-ripi[data-mood=focused]{transform:rotate(2deg);}.h20-ripi[data-mood=returning]{transform:rotate(-7deg);}
.h20-dialog{padding:24px;max-width:460px;width:calc(100% - 28px);max-height:calc(100svh - 28px);overflow-y:auto;overscroll-behavior:contain;position:fixed;margin:auto;border:1px solid var(--s20-line);border-radius:30px;background:var(--s20-bg);box-shadow:0 18px 80px #0003;animation:c20-in .22s ease-out;}
.h20-dialog::backdrop{background:#1a16156b;backdrop-filter:blur(8px);}
.h20-dialog-head{display:flex;gap:12px;justify-content:space-between;align-items:center;}
.h20-close{display:grid;place-items:center;border:0;background:var(--s20-wash);color:var(--s20-ink);border-radius:50%;width:44px;height:44px;flex:none;font:1.5rem var(--s20-font);cursor:pointer;}
.h20-dialog>.h20-action{position:sticky;bottom:0;margin-top:20px;z-index:2;}.h20-dialog>.h20-link{display:flex;margin:8px auto 0;}
.h20-eyebrow{display:block;text-align:center;margin:8px 0;color:var(--s20-muted);font-variant-numeric:tabular-nums;}
.h20-reward-body{min-height:315px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;text-align:center;padding:10px 0 20px;}
.h20-reward-body>p{margin:0;}.h20-reaction{font-size:1.1rem;font-weight:600;text-align:center;line-height:1.7;}
.h20-number{font-size:clamp(2.6rem,10vw,4rem);font-weight:750;letter-spacing:-.055em;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--s20-accent);}
.h20-dialog[data-habit-dialog=bonus]{text-align:center;}.h20-dialog[data-habit-dialog=bonus]>.h20-ripi{margin:24px auto 14px;}.h20-dialog[data-habit-dialog=bonus]>.h20-number{display:block;margin:18px auto;}
.h20-ring{--ring-color:var(--s20-accent);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;border-radius:50%;width:155px;height:155px;flex:none;background:conic-gradient(var(--ring-color) calc(var(--progress)*1turn),var(--s20-wash) 0);isolation:isolate;}
.h20-ring::before{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--s20-bg);z-index:-1;}
.h20-ring>b{font-size:2.8rem;letter-spacing:-.04em;line-height:1.2;font-variant-numeric:tabular-nums;}.h20-ring>small{text-align:center;max-width:80%;font-size:.7rem;line-height:1.4;}
.h20-ring-small{width:70px;height:70px;}.h20-ring-small::before{inset:5px;}.h20-ring-small>b{font-size:1.5rem;}.h20-ring-small>small{font-size:.48rem;}
.h20-gift{font:600 .9rem/1.5 var(--s20-font);border:1px solid var(--s20-line);border-radius:18px;background:var(--s20-surface);color:var(--s20-accent);padding:12px 20px;cursor:pointer;min-height:48px;}.h20-commitment{display:flex;gap:12px;}.h20-commitment [aria-pressed=true]{border:1px solid var(--s20-accent);border-radius:14px;padding:8px 16px;}
.h20-gift{display:flex;align-items:center;gap:12px;}.h20-gift-art{display:block;width:44px;height:44px;flex:none;}.h20-gift-art svg{width:100%;height:100%;}.h20-gift-lid{transform-origin:8px 20px;transition:transform .3s;}.h20-gift[data-open] .h20-gift-lid{transform:rotate(-20deg) translateY(-7px);}
.h20-page>*{animation:c20-in .2s ease-out backwards;}.h20-page>:nth-child(2){animation-delay:.025s;}.h20-page>:nth-child(3){animation-delay:.05s;}.h20-page>:nth-child(4){animation-delay:.075s;}
.h20-menu-mini{display:flex;gap:16px;align-items:center;font-size:.85rem;}.h20-menu-mini>span{max-width:170px;}
.h20-week-rings{display:flex;justify-content:space-between;gap:6px;margin:20px 0 30px;}.h20-ring-tiny{width:38px;height:38px;}.h20-ring-tiny::before{inset:4px;}.h20-ring-tiny>b{font-size:.75rem;}.h20-ring-tiny>small{font-size:.45rem;}
.h20-strip{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;flex:none;padding:6px 18px;font-size:.8rem;border-bottom:1px solid var(--s20-line);}
.h20-strip>.h20-link{padding:0;min-height:34px;font-weight:650;}
.h20-preparation{width:100%;border-bottom:4px solid var(--s20-wash);position:relative;}.h20-preparation::after{content:"";position:absolute;bottom:-4px;left:0;height:4px;width:var(--ready);background:var(--s20-accent);border-radius:2px;}
.h20-quota{display:flex;flex-wrap:wrap;gap:3px 16px;padding:3px 18px;flex:none;font-size:.72rem;color:var(--s20-muted);}.h20-quota>.h20-link{font-size:.75rem;}
.habit20 .c20-room{container-type:size;container-name:habitroom;}
@container habitroom (max-height:500px){.h20-strip,.h20-quota,.s20-room-recommend,.h20-trial{display:none!important;}}
.h20-flame{font-size:3rem;color:var(--s20-accent);animation:c20-dot .8s alternate infinite;}
.h20-challenges{display:grid;gap:12px;width:100%;}
.h20-challenge{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:64px;padding:14px 16px;border:1px solid var(--s20-line);background:var(--s20-surface);border-radius:18px;color:var(--s20-ink);text-decoration:none;text-align:left;box-sizing:border-box;}
.h20-challenge>span:nth-child(2){font-size:.9rem;}.h20-challenge>b{font-size:.8rem;white-space:nowrap;}.h20-challenge-check{color:var(--s20-accent);font-size:1.2rem;}
.h20-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px;}.h20-metric strong{display:block;font-size:3rem;line-height:1.3;letter-spacing:-.045em;}.h20-metric small{display:block;font-size:.8rem;line-height:1.6;color:var(--s20-muted);}
.h20-records>.h20-link{margin-right:20px;}.h20-comparison{text-align:center;display:grid;gap:12px;}.h20-comparison .h20-number{font-size:3rem;}.h20-comparison>p{font-size:.9rem;}
.h20-field{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;}.h20-field>input,.h20-field>select{width:auto!important;max-width:150px;box-sizing:border-box;padding:10px!important;min-height:44px;}.h20-field>input[type=checkbox]{width:24px!important;height:24px;accent-color:var(--s20-accent);}
.h20-settings>.h20-link{display:flex;}.h20-status{font-size:.85rem;color:var(--s20-muted);min-height:1em;}
.h20-wardrobe{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}.h20-costume{display:flex;flex-direction:column;align-items:center;gap:12px;border:1px solid var(--s20-line);border-radius:24px;padding:16px 8px;background:var(--s20-surface);color:var(--s20-ink);font:inherit;cursor:pointer;}.h20-costume img{width:110px;height:110px;object-fit:contain;}.h20-costume[data-owned=false] img{filter:brightness(0);opacity:.18;}.h20-costume b{font-size:.9rem;}.h20-costume small{font-size:.75rem;}
.h20-share{width:100%;height:auto;border-radius:24px;border:1px solid var(--s20-line);}
.h20-bonus-band{position:fixed;inset:0 0 auto;z-index:250;background:var(--s20-accent);color:var(--s20-on);text-align:center;font:700 .85rem/1.5 var(--s20-font);padding:10px 12px;min-height:40px;box-sizing:border-box;font-variant-numeric:tabular-nums;box-shadow:0 2px 8px #0002;}
body[data-habit-bonus] #app{padding-top:60px!important;}body[data-habit-bonus][data-route=coachroom] #app{padding-top:44px!important;}
body[data-habit-bonus] .c20-room{height:calc(var(--c20-vh,100svh) - 124px - env(safe-area-inset-bottom,0px))!important;}
.h20-unread{position:absolute;right:calc(50% - 28px);top:6px;border-radius:12px;min-width:18px;background:var(--s20-accent);color:var(--s20-on);font-size:11px;font-weight:700;line-height:18px;text-align:center;}.habit20 #raTabs [data-tab=home]{position:relative!important;}
.h20-prices{display:grid;gap:18px;}.h20-price{position:relative;padding:24px;border-radius:24px;border:1px solid var(--s20-line);background:var(--s20-surface);display:grid;align-content:start;gap:12px;}.h20-price[data-selected=true]{border:2px solid var(--s20-accent);padding:23px;}.h20-price-amount{display:block;font-size:1.35rem;font-weight:750;line-height:1.5;}.h20-price p{font-size:.9rem;}.h20-price .h20-select{border:1px solid var(--s20-line);border-radius:14px;}.h20-recommended{color:var(--s20-accent)!important;font-weight:700;}.h20-price-source{font-size:.75rem;color:var(--s20-muted);}.h20-price-source a{font-size:.75rem;margin-right:18px;}.h20-price-source summary,.h20-card summary{cursor:pointer;min-height:44px;}.h20-terms{font-size:.8rem;color:var(--s20-muted);line-height:1.8;}.h20-trial{padding:14px 18px;flex:none;border-left:4px solid var(--s20-accent);background:var(--s20-wash);font-size:.8rem;}.h20-trial p{margin:5px 0;}.h20-trial small{font-size:.72rem;}
.h20-cancel-actions{display:grid;gap:14px;}.h20-equal-action{display:flex;align-items:center;justify-content:center;border:1px solid var(--s20-line);border-radius:18px;padding:16px 20px;min-height:58px;background:var(--s20-surface);color:var(--s20-accent);font:600 1rem/1.5 var(--s20-font);width:100%;cursor:pointer;box-sizing:border-box;}
html.shell20 #app [data-habit-cancel] [data-primary="1"]{position:static!important;transform:none!important;left:auto!important;bottom:auto!important;width:100%!important;max-width:none!important;box-shadow:none!important;background:var(--s20-surface)!important;color:var(--s20-accent)!important;border:1px solid var(--s20-line)!important;border-radius:18px!important;padding:16px 20px!important;font-weight:600!important;}
@media(min-width:1000px){.h20-prices{grid-template-columns:repeat(3,minmax(0,1fr));}.h20-price-amount{font-size:1.15rem;}.h20-wardrobe{grid-template-columns:repeat(3,minmax(0,1fr));}.h20-week-rings{max-width:500px;margin-inline:auto;}.h20-ring-tiny{width:52px;height:52px;}.h20-ring-tiny>small{font-size:.6rem;}}
@media(max-width:390px){.h20-dialog{padding:20px;}.h20-card{padding:18px;}.h20-field{gap:10px;font-size:.9rem;}.h20-challenge{padding:12px;gap:8px;}.h20-challenge>span:nth-child(2){font-size:.8rem;}}
@media(prefers-reduced-motion:reduce){.habit20 .h20-dialog,.habit20 .h20-flame,.habit20 .h20-action,.habit20 .h20-select{animation:none!important;transition:none!important;transform:none!important;}}
.h20-static .h20-dialog,.h20-static .h20-flame,.h20-static .h20-action,.h20-static .h20-select,.h20-static .h20-page>*,.h20-static .h20-gift-lid{animation:none!important;transition:none!important;transform:none!important;}
@media(prefers-contrast:more){.h20-card,.h20-price,.h20-challenge,.h20-costume{border-color:currentColor;}.h20-unread{outline:2px solid var(--s20-ink);}}
@media(forced-colors:active){.h20-ring{border:4px solid Highlight;}.h20-ring::before{background:Canvas;}.h20-bonus-band{background:Highlight;color:HighlightText;}}

.h20-gift[data-open="1"]{cursor:default;}.h20-recovery{display:grid;gap:10px;text-align:left;}.h20-recovery small{display:block;}
