/* Plano (lista) — linhas partilhadas */
.hm-table{display:flex;flex-direction:column;margin-top:8px}.hm-row{display:grid;grid-template-columns:78px 1fr auto;gap:10px;align-items:center;min-height:56px;padding:10px 6px;border-top:1px solid var(--ux-line,#ece9e2);text-decoration:none;color:inherit;border-radius:12px}.hm-row:first-child{border-top:0}
.hm-row .d{font-weight:700;color:#0f2a3d;font-size:13px;text-transform:capitalize}.hm-row .t{display:flex;flex-direction:column;min-width:0}.hm-row .t b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hm-row .t small{color:#4b5b66}
/* Início do atleta */
.dh{display:grid;grid-template-columns:1fr;gap:14px;--dh-ink:#0f2a3d}
.dh>*{min-width:0;animation:dh-in .55s var(--ux-ease,cubic-bezier(.2,.8,.2,1)) both;animation-delay:calc(var(--i,0)*70ms)}
@keyframes dh-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.dh-hello h2{margin:0;font-size:clamp(22px,6vw,30px);letter-spacing:-.03em}.dh-hello p{margin:2px 0 0}
.dh-kick{font-size:12px;font-weight:800;letter-spacing:.09em;color:inherit;opacity:.9}
.dh-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.dh-head h3{margin:0;font-size:17px}
.dh-more{display:inline-flex;align-items:center;min-height:48px;padding:0 4px;font-weight:700;font-size:14px;color:#0f766e;text-decoration:none}
.dh-card{display:block;background:var(--ux-surface,#fff);border:1px solid var(--ux-line,#dbe7e5);border-radius:22px;padding:clamp(16px,3.5vw,22px);color:inherit;text-decoration:none}
/* herói: sessão do dia */
.dh-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:26px;padding:clamp(20px,5vw,30px);color:#fff;background:linear-gradient(135deg,#0f2a3d 0%,#0f4f52 55%,#0f766e 100%);min-height:200px}
.dh-hero-t{position:relative;z-index:1;display:flex;flex-direction:column;gap:8px;min-width:0;flex:1}
.dh-hero .dh-kick{color:#bff3ec;opacity:1}
.dh-title{margin:0;font-size:clamp(24px,6.6vw,34px);line-height:1.12;font-weight:800;letter-spacing:-.03em;color:#fff!important;overflow-wrap:anywhere}
.dh-meta{display:flex;flex-wrap:wrap;gap:6px;margin:0}.dh-meta span{background:rgba(255,255,255,.16);color:#fff;border-radius:99px;padding:4px 12px;font-size:14px;font-weight:700}
.dh-cta{position:relative;overflow:hidden;align-self:flex-start;display:inline-flex;align-items:center;gap:10px;min-height:56px;margin-top:8px;padding:0 26px;border-radius:99px;background:#fff;color:#0f2a3d!important;font-size:17px;font-weight:800;text-decoration:none;transition:transform .25s var(--ux-spring,cubic-bezier(.34,1.56,.64,1))}
.dh-cta span{color:#0f766e;font-size:13px;transition:transform .25s var(--ux-spring,cubic-bezier(.34,1.56,.64,1))}.dh-cta:hover span{transform:translateX(4px)}.dh-cta:active{transform:scale(.96)}
.dh-hero.dh-today .dh-cta{animation:dh-pulse 2.6s ease-in-out 1.2s 3}
@keyframes dh-pulse{0%,100%{transform:none}50%{transform:scale(1.04)}}
.dh-hero .hero3d{position:relative;z-index:1;flex:0 0 auto}
.dh-deco{position:absolute;right:-50px;top:-50px;width:190px;height:190px;border-radius:50%;border:26px solid rgba(255,255,255,.07);box-shadow:none}
.dh-hero.dh-done{background:linear-gradient(135deg,#0f2a3d,#14532d)}.dh-hero.dh-none{background:linear-gradient(135deg,#0f2a3d,#334155)}
/* semana */
.dh-wk{display:flex;align-items:center;gap:18px;margin:4px 0 14px}
.dh-ring{position:relative;flex:0 0 132px;width:132px;height:132px}.dh-ring svg{width:100%;height:100%;display:block}
.dh-ring .trk{fill:none;stroke:var(--ux-line,#dbe7e5);stroke-width:12}.dh-ring .val{fill:none;stroke:#0d9488;stroke-width:12;stroke-linecap:round;transition:stroke-dashoffset 1.1s var(--ux-ease,cubic-bezier(.2,.8,.2,1)) .25s}
.dh-ringc{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}.dh-ringc b{font-size:34px;font-weight:800;letter-spacing:-.04em;color:var(--ux-text,#0f2a3d)}.dh-ringc b small{font-size:16px;color:var(--ux-sub,#4b5b66);font-weight:700}.dh-ringc span{font-size:12.5px;color:var(--ux-sub,#4b5b66);font-weight:700}
.dh-stats{display:flex;flex-direction:column;gap:10px;align-items:flex-start;min-width:0}.dh-stats b{display:block;font-size:clamp(26px,7vw,32px);font-weight:800;letter-spacing:-.03em;line-height:1.1;color:var(--ux-text,#0f2a3d)}.dh-stats b small{font-size:15px;color:var(--ux-sub,#4b5b66)}.dh-stats span{font-size:13.5px;color:var(--ux-sub,#4b5b66)}
.dh-days{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.dh-day{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12.5px;font-weight:800;color:var(--ux-sub,#4b5b66)}
.dh-day i{width:34px;height:34px;border-radius:50%;border:2px dashed var(--ux-line,#c5d3d1);display:flex;align-items:center;justify-content:center;font-style:normal;font-size:16px;color:#fff;transition:transform .3s var(--ux-spring,cubic-bezier(.34,1.56,.64,1))}
.dh-day.planned i{border:2.5px solid var(--cc,#0d9488);background:transparent}.dh-day.done i{background:var(--cc,#0d9488);border:2.5px solid var(--cc,#0d9488)}
.dh-day.today span:first-of-type{color:var(--ux-text,#0f2a3d);text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px;text-decoration-color:#0d9488}
.dh-day.today i{transform:scale(1.12)}
.dh-day.done.cat-mobility i,.dh-day.done.cat-wod i,.dh-day.done.cat-other i,.dh-day.done.cat-rest i{color:#0f2a3d}
/* objetivo */
.dh-goal{display:flex;flex-direction:column;gap:2px;transition:transform .25s var(--ux-spring,cubic-bezier(.34,1.56,.64,1))}.dh-goal:active{transform:scale(.98)}
.dh-goal .dh-kick{color:#4338ca}.dh-gn{display:flex;align-items:baseline;gap:8px;margin-top:2px}.dh-gn b{font-size:clamp(44px,12vw,60px);line-height:1;font-weight:800;letter-spacing:-.05em;color:var(--ux-text,#0f2a3d)}.dh-gn span{font-size:20px;font-weight:800;color:var(--ux-sub,#4b5b66)}
.dh-gname{margin:4px 0 0;font-size:17px;font-weight:800;color:var(--ux-text,#0f2a3d);overflow-wrap:anywhere}.dh-goal.off{border-style:dashed;justify-content:center;min-height:120px}
/* a seguir */
.dh-rows{display:flex;flex-direction:column}
.dh-row{position:relative;overflow:hidden;display:grid;grid-template-columns:78px 1fr 24px;gap:10px;align-items:center;min-height:64px;padding:8px 6px 8px 12px;border-top:1px solid var(--ux-line,#e6eeec);text-decoration:none;color:inherit;border-left:4px solid var(--cc,#d9d6cd);border-radius:12px;transition:background .2s,transform .2s var(--ux-spring,cubic-bezier(.34,1.56,.64,1))}
.dh-row:first-child{border-top:0}.dh-row:active{transform:scale(.985)}.dh-row .d{font-weight:800;font-size:13px;text-transform:capitalize;color:var(--ux-text,#0f2a3d)}.dh-row .t{display:flex;flex-direction:column;min-width:0}.dh-row .t b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dh-row .t small{color:var(--ux-sub,#4b5b66)}.dh-row .go{font-size:24px;color:var(--ux-sub,#4b5b66)}
/* treinador */
.dh-coach{display:flex;gap:14px;align-items:flex-start;border-left:6px solid #f59e0b}.dh-coach.unread{background:#fff8e8}
.dh-cav{flex:0 0 46px}.dh-cav .art{animation:none;display:block}.dh-cb{display:flex;flex-direction:column;gap:6px;min-width:0}.dh-coach .dh-kick{color:#8a5a00}
.dh-q{margin:0;font-size:16px;line-height:1.45;color:var(--ux-text,#0f2a3d);overflow-wrap:anywhere}
.dh-btn2{align-self:flex-start;display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border-radius:99px;border:2px solid #0f766e;color:#0f766e!important;font-weight:800;text-decoration:none;background:transparent}
/* atalhos por categoria */
.dh-cats{display:flex;flex-direction:column;gap:18px}.dh-cat h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--gt,#0f2a3d)}.dh-cat h3 i{width:10px;height:10px;border-radius:50%;background:var(--gc)}
.dh-g-treino{--gt:#0f766e}.dh-g-evolucao{--gt:#4338ca}.dh-g-contacto{--gt:#8a5a00}.dh-g-conta{--gt:#475569}
.dh-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.dh-tile{position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;min-height:72px;padding:12px 14px;border-radius:20px;text-decoration:none;color:var(--ux-text,#0f2a3d);background:color-mix(in srgb,var(--gc) 10%,var(--ux-surface,#fff));border:1px solid color-mix(in srgb,var(--gc) 26%,var(--ux-surface,#fff));transition:transform .25s var(--ux-spring,cubic-bezier(.34,1.56,.64,1))}
.dh-tile:hover{transform:translateY(-3px)}.dh-tile:active{transform:scale(.96)}
.dh-tile b{flex:0 0 44px;width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;background:color-mix(in srgb,var(--gc) 20%,var(--ux-surface,#fff))}
.dh-tile span{display:flex;flex-direction:column;min-width:0}.dh-tile strong{font-size:15.5px;font-weight:800}.dh-tile small{font-size:12.5px;color:var(--ux-sub,#4b5b66);line-height:1.3}
/* esqueleto de carregamento */
.dh-skel{border-radius:24px;background:linear-gradient(90deg,var(--ux-surface2,#eef5f4) 0,var(--ux-line,#dbe7e5) 50%,var(--ux-surface2,#eef5f4) 100%);background-size:200% 100%;animation:dh-sh 1.3s linear infinite}.dh-skel.s1{height:56px;width:70%}.dh-skel.s2{height:200px}.dh-skel.s3{height:220px}
@keyframes dh-sh{to{background-position:-200% 0}}
/* tablet / ordenador */
@media(min-width:768px){.dh{grid-template-columns:1.35fr 1fr;gap:16px;align-items:stretch}.dh-hello,.dh-hero,.dh-nextl,.dh-coach,.dh-cats,.dh-card:last-child,.dh-full{grid-column:1/-1}.dh-tiles{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.dh-hero{min-height:220px}}
@media(min-width:1180px){.dh-hero{padding:34px 40px}}
@media(max-width:380px){.dh-ring{flex-basis:112px;width:112px;height:112px}.dh-wk{gap:12px}.dh-day i{width:30px;height:30px}.dh-row{grid-template-columns:64px 1fr 20px}}
/* o cartão do dia é o título da página: esconde o banner genérico do menu */
.main:has(>div>.dh)>.hero,.main:has(.dh)>.hero{display:none}
/* escuro */
html[data-theme=dark] .dh-card,html[data-theme=dark] .dh-hello{color:var(--ux-text)}
html[data-theme=dark] .dh-coach.unread{background:#2a2412!important}html[data-theme=dark] .dh-coach .dh-kick{color:#fcd34d}html[data-theme=dark] .dh-goal .dh-kick{color:#a5b4fc}html[data-theme=dark] .dh-more,html[data-theme=dark] .dh-btn2{color:#5eead4!important}html[data-theme=dark] .dh-btn2{border-color:#5eead4}
html[data-theme=dark] .dh-g-treino{--gt:#5eead4}html[data-theme=dark] .dh-g-evolucao{--gt:#a5b4fc}html[data-theme=dark] .dh-g-contacto{--gt:#fcd34d}html[data-theme=dark] .dh-g-conta{--gt:#cbd5e1}
html[data-theme=dark] .dh-tile{color:var(--ux-text)!important;background:color-mix(in srgb,var(--gc) 16%,#171b20)!important;border-color:color-mix(in srgb,var(--gc) 30%,#171b20)!important}html[data-theme=dark] .dh-tile small{color:#a9b4bf!important}
html[data-theme=dark] .dh-hero{border:1px solid #2c343c}html[data-theme=dark] .dh-day.today span:first-of-type{text-decoration-color:#5eead4}
html[data-theme=dark] .hm-row .d{color:#eceef1}html[data-theme=dark] .hm-row .t small{color:#a9b4bf}
@media(prefers-reduced-motion:reduce){.dh>*{animation:none}.dh-hero.dh-today .dh-cta{animation:none}.dh-skel{animation:none}.dh-ring .val{transition:none}}
