/* My Routine 2.9 — apresentação e fluidez; não interfere no motor de tarefas */
:root{color-scheme:dark}body{background-image:radial-gradient(ellipse at 80% -8%,color-mix(in srgb,var(--acento) 17%,transparent),transparent 52%),radial-gradient(ellipse at -20% 110%,color-mix(in srgb,var(--acento2) 8%,transparent),transparent 55%)}
header{position:relative}header h1{font-weight:900;letter-spacing:-.055em;text-shadow:0 0 26px color-mix(in srgb,var(--acento) 25%,transparent)}
.pagina-app:not([hidden]){animation:v29-in .34s cubic-bezier(.2,.8,.2,1) both;transform-origin:50% 0}
@keyframes v29-in{from{opacity:0;transform:translate3d(0,13px,0) scale(.99)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
.aba-botao{position:relative;overflow:hidden}.aba-botao::after{content:'';position:absolute;bottom:0;left:25%;right:25%;height:2px;background:var(--acento);transform:scaleX(0);transition:transform .24s}.aba-botao.ativo::after{transform:scaleX(1)}
button:not(:disabled){transition:transform .16s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease}button:active:not(:disabled){transform:scale(.975)}
.temas-opcoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px}.tema-opcao{min-height:64px;text-align:left;display:flex;align-items:center;gap:10px;padding:12px;font-weight:700}.tema-bolinha{height:23px;width:23px;flex-shrink:0;border-radius:50%;box-shadow:0 0 15px currentColor}
.v29-options{margin-top:16px;padding:14px;border:1px solid var(--neo-stroke);border-radius:14px;background:var(--neo-surface-2)}.v29-options[hidden]{display:none!important}.v29-options label{font-weight:650}.v29-options select{margin:8px 0 0;display:block;width:100%;padding:11px}.v29-colors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.v29-colors label{display:flex;flex-direction:column;gap:7px;font-size:.8rem}.v29-colors input[type=color]{height:42px;width:100%;padding:3px;cursor:pointer}.v29-options button{margin-top:9px;border:1px solid var(--neo-stroke);border-radius:10px;padding:10px 13px;background:var(--neo-surface);color:inherit}.v29-check{display:flex;align-items:center;gap:9px}.v29-check input{width:18px;height:18px;accent-color:var(--acento)}
html[data-v29-estilo=minimalista] body{background-image:none}html[data-v29-estilo=minimalista] .card,html[data-v29-estilo=minimalista] .progresso,html[data-v29-estilo=minimalista] .evolucao,html[data-v29-estilo=minimalista] .tarefas,html[data-v29-estilo=minimalista] .rapida-card{box-shadow:none!important}html[data-v29-estilo=minimalista] header h1{text-shadow:none}html[data-v29-estilo=minimalista] .pagina-app:not([hidden]){animation:v29-simple .2s ease both}@keyframes v29-simple{from{opacity:.5}to{opacity:1}}
#v29-splash{position:fixed;inset:0;z-index:4000;background:#05070c;display:grid;place-items:center;overflow:hidden;color:#f8faff}#v29-splash[hidden]{display:none!important}.v29-splash-inner{text-align:center;width:min(88vw,480px)}.v29-line{height:2px;background:linear-gradient(90deg,transparent,var(--acento),var(--acento2),transparent);transform:scaleX(0);animation:v29-line 2.15s cubic-bezier(.18,.7,.2,1) forwards;box-shadow:0 0 22px var(--acento)}.v29-logo{font-size:clamp(2.1rem,9vw,4.1rem);font-weight:900;letter-spacing:.13em;margin:25px 0 7px;opacity:0;animation:v29-logo 1.1s 1.55s ease forwards}.v29-tag{font-size:.87rem;color:#b7c4d6;letter-spacing:.1em;opacity:0;animation:v29-logo .9s 2.5s ease forwards}@keyframes v29-line{25%{transform:scaleX(.15)}100%{transform:scaleX(1)}}@keyframes v29-logo{to{opacity:1;transform:translateY(0)}from{opacity:0;transform:translateY(8px)}}#v29-splash.v29-exit{animation:v29-out .3s ease forwards}@keyframes v29-out{to{opacity:0;visibility:hidden}}
@media(max-width:500px){.temas-opcoes{grid-template-columns:repeat(2,minmax(0,1fr))}.tema-opcao{font-size:.82rem;padding:10px}.v29-colors{gap:6px}}
@media(prefers-reduced-motion:reduce){.pagina-app:not([hidden]),.v29-line,.v29-logo,.v29-tag,#v29-splash.v29-exit{animation:none!important;opacity:1;transform:none}}

/* 2.9.1 — transições visíveis e design de navegação */
.pagina-app:not([hidden]){animation:v291-page .48s cubic-bezier(.18,.8,.2,1) both}
@keyframes v291-page{0%{opacity:0;transform:translate3d(22px,0,0) scale(.985);filter:blur(3px)}65%{filter:blur(0)}100%{opacity:1;transform:none;filter:none}}
.aba-botao{border-radius:14px!important;transition:background .28s, color .28s,transform .28s!important}
.aba-botao.ativo{background:color-mix(in srgb,var(--acento) 17%,var(--fundo))!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--acento) 50%,transparent),0 0 22px color-mix(in srgb,var(--acento) 14%,transparent)}
.aba-botao.ativo .aba-icone{transform:translateY(-2px) scale(1.14);filter:drop-shadow(0 0 5px var(--acento))}
.aba-icone{display:grid;place-items:center;transition:transform .25s,filter .25s}.aba-icone svg{width:23px;height:23px}
html[data-v29-estilo=futurista] .rapida-card,html[data-v29-estilo=futurista] .evolucao,html[data-v29-estilo=futurista] .card{border:1px solid color-mix(in srgb,var(--acento) 38%,transparent);box-shadow:0 12px 34px #0005,0 0 22px color-mix(in srgb,var(--acento) 9%,transparent)!important;backdrop-filter:blur(8px)}
html[data-v29-estilo=futurista] .rapida-card:hover,html[data-v29-estilo=futurista] .card:hover{box-shadow:0 12px 40px #0006,0 0 32px color-mix(in srgb,var(--acento) 21%,transparent)!important}
html[data-v29-estilo=minimalista] .rapida-card,html[data-v29-estilo=minimalista] .evolucao,html[data-v29-estilo=minimalista] .card{border:1px solid #ffffff1a!important;box-shadow:none!important;backdrop-filter:none!important}
html[data-v29-estilo=minimalista] .aba-botao.ativo{box-shadow:none!important;background:color-mix(in srgb,var(--acento) 12%,var(--fundo))!important}
html[data-v29-estilo=minimalista] .aba-botao.ativo .aba-icone{filter:none;transform:none}
html[data-v29-estilo=minimalista] .pagina-app:not([hidden]){animation:v29-simple .22s ease both;filter:none}
.calorias-card{grid-column:1/-1}.calorias-heading{display:flex;justify-content:space-between;align-items:center}.calorias-badge{font-size:.7rem;border:1px solid var(--neo-stroke);border-radius:20px;padding:4px 9px;color:var(--acento)}
.calorias-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,130px) auto;gap:9px;align-items:end;margin:12px 0}.calorias-form label{display:flex;flex-direction:column;gap:5px;font-size:.8rem}.calorias-form input{width:100%;min-width:0;padding:10px;border-radius:9px}.calorias-form button{padding:10px 14px;border-radius:9px}.calorias-lista{display:grid;gap:6px;margin:9px 0}.calorias-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--neo-stroke);border-radius:10px;font-size:.85rem}.calorias-item button{font-size:.8rem;padding:5px 9px;border-radius:8px}.credito-dev{font-size:.82rem;letter-spacing:.025em;opacity:.8}.credito-dev strong{color:var(--acento)}
@media(max-width:560px){.calorias-form{grid-template-columns:1fr 1fr}.calorias-form button{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.pagina-app:not([hidden]){animation:none!important;filter:none!important}.aba-botao,.aba-icone{transition:none!important}}

.ritmo-visual{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px auto 0;padding:9px 12px;border:1px solid var(--neo-stroke);border-radius:12px;max-width:400px;color:var(--acento);background:color-mix(in srgb,var(--acento) 5%,transparent)}.ritmo-visual span,.ritmo-visual small{font-size:.58rem;font-weight:800;letter-spacing:.13em;white-space:nowrap}.ritmo-visual svg{height:26px;width:90px;flex:1;min-width:35px;filter:drop-shadow(0 0 6px var(--acento));animation:ritmo-pulso 2s ease-in-out infinite}@keyframes ritmo-pulso{50%{opacity:.4;transform:scaleX(.97)}}@media(prefers-reduced-motion:reduce){.ritmo-visual svg{animation:none}}

/* 2.9.2.1: o selo de versão (mais longo) pode quebrar linha em telas estreitas sem criar rolagem horizontal */
.logo{flex-wrap:wrap;justify-content:center;row-gap:6px}
.versao{max-width:100%;text-align:center;white-space:normal}

/* 2.9.3 — estabilidade visual, áreas de toque e acessibilidade */
html,body{max-width:100%;overflow-x:clip}
.pagina-app:not([hidden]){animation:v293-page .32s cubic-bezier(.2,.8,.2,1) both}
@keyframes v293-page{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
.aba-botao{min-height:48px}
.acoes-tarefa button,.acoes-tarefa .editar,.acoes-tarefa .excluir,.calorias-item button,.metas-item button,.meta-item button{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--acento);outline-offset:3px}
.versao,.credito-dev,.calorias-badge{opacity:1}
html[data-v29-estilo=minimalista] .pagina-app:not([hidden]){animation:v29-simple .2s ease both}
@media(prefers-reduced-motion:reduce){.pagina-app:not([hidden]){animation:none!important;transform:none!important}}
/* Substitui as cores vermelhas fixas do CSS legado pelos tokens do tema escolhido. */
.nova-tarefa button[type=submit],#adicionar-tarefa,.calendario-controles button,.dia-calendario.selecionado{background:var(--botao,var(--acento))}
.nova-tarefa input:focus,.dia-calendario.hoje,.avatar-opcao[aria-pressed=true]{border-color:var(--acento)}
.desafio-dia.hoje{outline-color:var(--acento)}

/* 2.9.4.2 — Áreas de toque de 44 px SEM mudar o visual.
   Os botões continuam exatamente do mesmo tamanho; só a área clicável (invisível) cresce.
   Editar cresce para a ESQUERDA e Excluir para a DIREITA, para as duas áreas nunca se sobreporem
   (entre elas fica sempre uma folga). Na vertical há folga de sobra entre as linhas. */
#lista-tarefas .acoes-tarefa button{position:relative}
#lista-tarefas .acoes-tarefa button::after{content:"";position:absolute;top:50%;height:44px;margin-top:-22px;width:44px;background:transparent}
#lista-tarefas .acoes-tarefa .editar::after{right:-1px}
#lista-tarefas .acoes-tarefa .excluir::after{left:-1px}
/* Botões largos mas baixos (32–39 px de altura): só a altura da área clicável cresce (4–6 px acima e abaixo), sem mudar o visual. */
.fe-goal-edit,.fe-reopen,#form-perfil button[type=submit],#form-meta button[type=submit],#v29-rever-abertura{position:relative}
.fe-goal-edit::after,.fe-reopen::after,#form-perfil button[type=submit]::after,#form-meta button[type=submit]::after,#v29-rever-abertura::after{content:"";position:absolute;left:0;right:0;top:-5px;bottom:-5px;background:transparent}
