*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--cal); color: var(--tinta); font-family: var(--fonte); font-size: var(--t-base); line-height: 1.5; -webkit-font-smoothing: antialiased; }
h1, h2, h3, p, ul, ol { margin: 0; }
h1, h2, h3 { font-family: var(--titulo); letter-spacing: -.02em; }
h1 { font-size: var(--t-h1); font-weight: 700; line-height: 1; letter-spacing: -.035em; }
h2 { font-size: var(--t-h2); font-weight: 700; line-height: 1.1; }
h3 { font-size: var(--t-h3); font-weight: 700; line-height: 1.2; }
h1 em, h2 em { font-style: italic; font-weight: 600; }
button { font: inherit; color: inherit; cursor: pointer; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--azul); outline-offset: 3px; border-radius: 8px; }
.so-leitor { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rotulo { font-size: var(--t-rotulo); font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--azul); }
.cont { max-width: 1200px; margin: 0 auto; padding: 0 var(--e4); }

/* Cores por tipo de prato */
.t-peixe { --cor: var(--peixe-cor); --suave: #E3EBF9; }
.t-marisco { --cor: var(--marisco-cor); --suave: #FCE3DD; }
.t-carne { --cor: var(--carne-cor); --suave: #F0DEE8; }
.t-ovos { --cor: var(--ovos-cor); --suave: #FBF0CC; }
.t-vegetariano { --cor: var(--vegetariano-cor); --suave: #DDF0E8; }

/* ---------- Azulejos (peças) ---------- */
.azl { display: inline-flex; width: 84px; height: 84px; padding: 10px; background: var(--branco); border-radius: 16px; box-shadow: 0 6px 16px rgba(16, 32, 58, .22), inset 0 0 0 1.5px var(--azul-gelo); transform: rotate(var(--r, 0deg)); flex: none; }
.rm6 { --r: -6deg; } .rm5 { --r: -5deg; } .rm4 { --r: -4deg; } .rm3 { --r: -3deg; } .r2 { --r: 2deg; } .r4 { --r: 4deg; } .r5 { --r: 5deg; } .r6 { --r: 6deg; }
.azl svg, .glifo svg { width: 100%; height: 100%; display: block; }
.glifo { display: inline-flex; flex: none; }

/* ---------- Barra e navegação ---------- */
.barra { background: var(--cal); border-bottom: 1px solid var(--linha); position: sticky; top: 0; z-index: 5; }
.barra-in { max-width: 1200px; margin: 0 auto; padding: var(--e3) var(--e4); display: flex; align-items: center; justify-content: space-between; gap: var(--e5); }
.marca { display: flex; align-items: center; gap: var(--e3); text-decoration: none; }
.marca svg { width: 42px; height: 42px; flex: none; }
.marca-nome { font-family: var(--titulo); font-weight: 800; font-size: 1.625rem; line-height: 1; letter-spacing: -.03em; color: var(--cobalto); }
.marca-nome em { font-style: italic; font-weight: 600; color: var(--coral); }
.marca-frase { display: none; font-size: var(--t-rotulo); font-weight: 700; color: var(--tinta-2); letter-spacing: .02em; margin-top: 3px; }

.nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 6; display: grid; grid-template-columns: repeat(3, 1fr); background: var(--branco); border-top: 1px solid var(--linha); padding-bottom: env(safe-area-inset-bottom); }
.nav a { min-height: 72px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; text-decoration: none; color: var(--tinta-2); font-weight: 700; font-size: var(--t-peq); }
.nav svg { width: 28px; height: 28px; }
.nav a[aria-current="page"] { color: var(--cobalto); }
.nav a[aria-current="page"] svg { background: var(--mostarda); border-radius: 12px; padding: 3px; width: 44px; height: 32px; color: var(--cobalto); }

/* ---------- Botões ---------- */
.botao { display: flex; align-items: center; justify-content: center; gap: var(--e2); width: 100%; min-height: var(--toque); padding: 0 var(--e5); border: 2px solid var(--azul); border-radius: var(--raio-m); background: var(--azul); color: #fff; text-decoration: none; font-weight: 800; font-size: 1.0625rem; transition: background-color .15s, transform .15s, box-shadow .15s; }
.botao:hover { background: var(--cobalto); border-color: var(--cobalto); }
.botao:active { transform: translateY(1px); }
.botao.secundario { background: transparent; color: var(--azul); }
.botao.secundario:hover { background: var(--azul-gelo); border-color: var(--azul); }
.botao.mostarda { background: var(--mostarda); border-color: var(--mostarda); color: var(--tinta); box-shadow: 0 4px 0 #B88A14; }
.botao.mostarda:hover { background: #F3C45A; border-color: #F3C45A; }
.botao.mostarda:active { transform: translateY(3px); box-shadow: 0 1px 0 #B88A14; }
.botao[disabled] { background: var(--leve); border-color: var(--leve); color: var(--tinta-2); cursor: default; }
.link { justify-self: start; min-height: 44px; padding: 0 var(--e2); border: 0; background: none; color: var(--azul); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Ecrãs ---------- */
.ecra { display: none; padding-bottom: 130px; }
.ecra.ativo { display: block; }
#hoje { padding-bottom: 280px; }

/* Herói (Hoje) */
.heroi { background: var(--gradiente); color: #fff; border-radius: 0 0 36px 36px; padding: var(--e6) 0 var(--e7); overflow: hidden; }
.heroi-in { display: grid; gap: var(--e6); align-items: center; }
.heroi .rotulo { color: var(--mostarda); }
.heroi h1 { margin: var(--e3) 0 var(--e4); }
.heroi h1 em { color: var(--mostarda); }
.heroi p.sub { color: #D6E2F8; max-width: 34ch; margin-bottom: var(--e5); }
.heroi .botao { max-width: 320px; }
.mesa-deco { display: flex; gap: var(--e3); align-items: flex-start; }
.mesa-deco .azl { width: 74px; height: 74px; padding: 9px; }
.mesa-deco .azl:nth-child(2) { margin-top: 16px; }
.mesa-deco .azl:nth-child(3) { margin-top: 4px; }
.mesa-deco .azl:nth-child(4) { margin-top: 20px; }

/* Faixa (Semana, Compras) */
.faixa { background-color: var(--verde); background-image: var(--motivo-claro); background-size: 48px 48px; color: #fff; border-radius: 0 0 36px 36px; padding: var(--e6) 0 var(--e6); margin-bottom: var(--e6); }
.faixa.mostarda { background-color: var(--mostarda); color: var(--tinta); }
.faixa .rotulo { color: inherit; opacity: .85; }
.faixa h1 { margin: var(--e2) 0 var(--e3); }
.faixa .sub { max-width: 40ch; opacity: .95; font-weight: 600; }
.faixa.mostarda .rotulo { color: var(--cobalto); opacity: 1; }
.prog { height: 12px; border-radius: 999px; background: rgba(16, 32, 58, .15); overflow: hidden; max-width: 420px; margin: var(--e4) 0 var(--e3); }
.prog span { display: block; height: 100%; width: 0; background: var(--cobalto); border-radius: 999px; transition: width .35s; }

/* ---------- Hoje: painel ---------- */
.hoje-grelha { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e7); padding-top: var(--e6); }
.hoje-grelha > * { min-width: 0; }
.passo-cab { display: flex; align-items: center; gap: var(--e3); margin-bottom: var(--e4); }
.passo-num { width: 40px; height: 40px; border-radius: 50%; background: var(--mostarda); color: var(--tinta); display: flex; align-items: center; justify-content: center; font-family: var(--titulo); font-weight: 800; font-size: 1.25rem; flex: none; }

.procura input { width: 100%; min-height: var(--toque); padding: 0 var(--e4) 0 52px; border: 2px solid var(--linha); border-radius: 999px; background: var(--branco) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2354657A' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.500-3.500'/%3E%3C/svg%3E") 18px center / 22px no-repeat; font: inherit; font-size: 1.0625rem; color: var(--tinta); }
.procura input::placeholder { color: var(--tinta-2); }
.procura input:focus { border-color: var(--azul); outline: 3px solid var(--azul-gelo); outline-offset: 0; }

.abas { display: flex; gap: var(--e2); overflow-x: auto; margin: var(--e4) calc(var(--e4) * -1) var(--e4); padding: 4px var(--e4); scrollbar-width: none; }
.abas::-webkit-scrollbar { display: none; }
.aba { flex: none; min-height: 52px; padding: 0 var(--e4) 0 var(--e3); display: inline-flex; align-items: center; gap: var(--e2); border: 2px solid var(--linha); border-radius: 999px; background: var(--branco); font-weight: 700; font-size: var(--t-peq); white-space: nowrap; }
.aba .glifo { width: 28px; height: 28px; }
.aba[aria-pressed="true"] { background: var(--cobalto); border-color: var(--cobalto); color: #fff; }

.tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.tile { position: relative; aspect-ratio: 1 / 1.1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 8px 4px; background: var(--branco); border: 2px solid var(--linha); border-radius: 20px; outline: 1.5px solid var(--azul-gelo); outline-offset: -8px; font-weight: 700; font-size: var(--t-peq); line-height: 1.15; text-align: center; color: var(--tinta); transition: background-color .15s, border-color .15s, transform .15s; }
.tile .glifo { width: 54px; height: 54px; }
.tile:hover { border-color: var(--azul-claro); transform: translateY(-2px); }
.tile[aria-pressed="true"] { background: var(--azul-gelo); border-color: var(--azul); outline-color: var(--azul-claro); }
.tile[aria-pressed="true"]::after { content: ""; position: absolute; top: -9px; right: -9px; width: 28px; height: 28px; border-radius: 50%; background: var(--azul) var(--visto) center / 16px no-repeat; box-shadow: 0 0 0 3px var(--cal); }
@keyframes bate { 0% { transform: scale(.92); } 60% { transform: scale(1.04); } 100% { transform: scale(1); } }
.tile.bate { animation: bate .25s ease-out; }
.sem-resultados { background: var(--leve); border-radius: var(--raio-m); padding: var(--e5); font-weight: 700; }

/* Cesto ("A tua mesa") */
.acao { position: fixed; left: 0; right: 0; bottom: 72px; z-index: 4; padding: var(--e3) var(--e4) var(--e3); background: var(--branco); border-radius: 24px 24px 0 0; box-shadow: 0 -10px 30px rgba(23, 57, 138, .14); display: grid; gap: var(--e3); }
.acao > * { max-width: 560px; width: 100%; margin: 0 auto; }
.cesto-cab { display: flex; align-items: center; justify-content: space-between; }
.cesto-cab .link { min-height: 32px; font-size: var(--t-peq); }
.cesto { display: flex; gap: var(--e2); overflow-x: auto; padding: 8px 0 4px; scrollbar-width: none; min-height: 60px; align-items: center; }
.cesto::-webkit-scrollbar { display: none; }
.mini { position: relative; flex: none; width: 52px; height: 52px; padding: 7px; background: var(--azul-gelo); border: 2px solid var(--azul-claro); border-radius: 14px; }
.mini::after { content: "×"; position: absolute; top: -7px; right: -7px; width: 22px; height: 22px; border-radius: 50%; background: var(--tinta); color: #fff; font-weight: 800; line-height: 20px; font-size: 15px; text-align: center; }
.mini .glifo { width: 100%; height: 100%; }
.cesto-vazio { color: var(--tinta-2); font-weight: 600; font-size: var(--t-peq); }
.acao.vazia .cesto, .acao.vazia .cesto-cab { display: none; }

/* ---------- Resultados ---------- */
.resultado { display: grid; gap: var(--e5); align-content: start; }
.resultado.vazio { display: none; }
.espera { display: none; }
.cartoes { display: grid; gap: var(--e5); }
.filtros { display: flex; gap: var(--e2); flex-wrap: wrap; }
.filtros button { min-height: 48px; padding: 0 var(--e4); border: 2px solid var(--linha); border-radius: 999px; background: var(--branco); font-weight: 700; font-size: var(--t-peq); }
.filtros button[aria-pressed="true"] { background: var(--cobalto); border-color: var(--cobalto); color: #fff; }

.receita { background: var(--branco); border-radius: var(--raio); overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--sombra); transition: transform .2s, box-shadow .2s; }
.receita:hover { transform: translateY(-3px); box-shadow: var(--sombra-2); }
.capa { position: relative; height: 168px; display: flex; align-items: center; justify-content: center; gap: 10px; background-color: var(--cor); background-image: var(--motivo-claro); background-size: 48px 48px; }
.capa .azl { width: 84px; height: 84px; }
.capa img, .det-capa img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.selo-tipo { position: absolute; left: var(--e3); top: var(--e3); padding: 4px 12px; border-radius: 999px; background: var(--branco); color: var(--tinta); font-size: var(--t-rotulo); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.receita .corpo { padding: var(--e5); display: grid; gap: var(--e3); flex: 1; align-content: start; }
.receita h3 { font-size: 1.4375rem; }
.meta { display: flex; flex-wrap: wrap; gap: var(--e2); }
.pilula { display: inline-flex; align-items: center; min-height: 32px; padding: 0 var(--e3); border-radius: 999px; background: var(--leve); font-size: var(--t-peq); font-weight: 700; }
.pilula.bom { background: #D8EFE6; color: var(--verde-2); }
.falta { color: var(--tinta-2); font-size: var(--t-peq); font-weight: 600; }
.receita .botoes { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e2); margin-top: var(--e2); }
.receita .botao { min-height: 52px; padding: 0 var(--e2); font-size: 1rem; }
.sem-receitas { background: var(--leve); border-radius: var(--raio-m); padding: var(--e5); font-weight: 700; }
#erro { background: var(--mostarda); padding: var(--e4); border-radius: var(--raio-m); font-weight: 800; }

/* ---------- Semana ---------- */
.dias { display: grid; gap: var(--e3); }
.dia { background: var(--branco); border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); }
.dia > h3 { font-size: 1.125rem; padding: var(--e3) var(--e4); display: flex; align-items: center; justify-content: space-between; background: var(--leve); }
.dia.hoje { box-shadow: 0 0 0 3px var(--mostarda), var(--sombra); }
.dia.hoje > h3 { background: var(--mostarda); color: var(--tinta); }
.selo { font-family: var(--fonte); font-size: var(--t-rotulo); letter-spacing: .12em; text-transform: uppercase; background: var(--cobalto); color: #fff; padding: 2px 10px; border-radius: 999px; }
.refeicao { display: grid; grid-template-columns: 76px 1fr; align-items: center; gap: var(--e3); padding: var(--e3) var(--e4); }
.refeicao + .refeicao { border-top: 1px dashed var(--linha); }
.quando { font-size: var(--t-rotulo); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-2); }
.cheio { display: grid; grid-template-columns: 1fr auto; gap: var(--e2); align-items: center; }
.prato { min-height: 60px; display: flex; align-items: center; gap: var(--e3); text-align: left; width: 100%; background: var(--suave); color: var(--tinta); border: 0; border-left: 5px solid var(--cor); border-radius: var(--raio-m); padding: var(--e2) var(--e3); font-weight: 700; font-size: var(--t-peq); line-height: 1.25; }
.prato .glifo { width: 34px; height: 34px; }
.tirar { min-height: 48px; padding: 0 var(--e3); border: 0; background: transparent; color: var(--tinta-2); font-weight: 600; font-size: var(--t-peq); text-decoration: underline; text-underline-offset: 3px; }
.vazio { width: 100%; min-height: 60px; border: 2px dashed var(--azul-claro); border-radius: var(--raio-m); background: transparent; color: var(--azul); font-weight: 800; font-size: var(--t-peq); }
.vazio:hover { background: var(--azul-gelo); border-color: var(--azul); }
.acao-fim { margin-top: var(--e5); display: grid; gap: var(--e3); max-width: 420px; }

/* ---------- Compras ---------- */
.listas { display: grid; gap: var(--e4); align-items: start; }
.seccao { background: var(--branco); border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); }
.seccao > h2 { font-family: var(--fonte); font-size: var(--t-rotulo); font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--cobalto); padding: var(--e4) var(--e4) var(--e3); display: flex; justify-content: space-between; background: var(--azul-gelo); }
.seccao > h2 span { color: var(--tinta-2); }
.item { display: flex; align-items: center; gap: var(--e3); min-height: 68px; padding: var(--e2) var(--e4); cursor: pointer; position: relative; }
.item + .item { border-top: 1px dashed var(--linha); }
.item input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.caixa { flex: none; width: 30px; height: 30px; border: 2px solid #9AA8BC; border-radius: 10px; background: var(--branco); transition: background-color .15s, border-color .15s; }
.item input:checked + .caixa { background: var(--verde) var(--visto) center / 20px no-repeat; border-color: var(--verde); }
.item input:focus-visible + .caixa { outline: 3px solid var(--azul); outline-offset: 3px; }
.item .glifo { width: 40px; height: 40px; }
.texto { font-weight: 700; line-height: 1.25; }
.quanto { display: block; color: var(--tinta-2); font-size: var(--t-peq); font-weight: 500; }
.item input:checked ~ .texto { color: var(--tinta-2); text-decoration: line-through; text-decoration-thickness: 1.5px; }
.item input:checked ~ .glifo { opacity: .45; }
.vazio-ecra { background: var(--branco); border-radius: var(--raio); box-shadow: var(--sombra); padding: var(--e6) var(--e5); display: grid; gap: var(--e5); max-width: 520px; font-family: var(--titulo); font-weight: 700; font-size: 1.5rem; line-height: 1.2; }

/* ---------- Janelas ---------- */
dialog { border: 0; padding: 0; background: var(--cal); color: var(--tinta); width: 100%; max-width: 100%; height: 100%; max-height: 100%; margin: 0; overflow-y: auto; }
dialog::backdrop { background: rgba(16, 32, 58, .6); backdrop-filter: blur(3px); }
.x { position: sticky; top: var(--e3); z-index: 3; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin: var(--e3) var(--e3) -60px auto; border: 0; border-radius: 50%; background: var(--branco); box-shadow: var(--sombra); }
.det-capa { position: relative; height: 200px; display: flex; align-items: center; justify-content: center; gap: var(--e3); background-color: var(--cor); background-image: var(--motivo-claro); background-size: 48px 48px; }
.det-capa .azl { width: 100px; height: 100px; padding: 12px; }
.det-corpo { padding: var(--e5) var(--e4) var(--e6); display: grid; gap: var(--e4); }
.det-corpo .rotulo { color: var(--cor); }
.det-corpo h2 { font-size: var(--t-h1); font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem); line-height: 1.02; }
.info { display: flex; gap: var(--e2); flex-wrap: wrap; }
.det-cols { display: grid; gap: var(--e5); margin-top: var(--e2); }
.det-cols h3 { margin-bottom: var(--e3); }
.det-lista { list-style: none; padding: 0; background: var(--branco); border-radius: var(--raio-m); box-shadow: var(--sombra); }
.det-lista li { display: flex; align-items: center; gap: var(--e3); padding: var(--e2) var(--e4); min-height: 56px; font-weight: 700; }
.det-lista li + li { border-top: 1px dashed var(--linha); }
.det-lista .glifo { width: 34px; height: 34px; }
.det-lista .quanto { display: inline; margin-left: auto; font-weight: 600; }
.det-passos { list-style: none; padding: 0; counter-reset: passo; display: grid; gap: var(--e4); }
.det-passos li { counter-increment: passo; display: grid; grid-template-columns: 40px 1fr; gap: var(--e3); align-items: start; }
.det-passos li::before { content: counter(passo); width: 40px; height: 40px; border-radius: 12px; background: var(--mostarda); color: var(--tinta); font-family: var(--titulo); font-weight: 800; font-size: 1.25rem; display: flex; align-items: center; justify-content: center; }
.det-acoes { display: grid; gap: var(--e3); margin-top: var(--e3); }

.esc-corpo { padding: var(--e7) var(--e4) var(--e6); display: grid; gap: var(--e4); }
.esc-sub { color: var(--tinta-2); font-weight: 700; margin-top: calc(var(--e2) * -1); }
.esc-lista { display: grid; gap: var(--e2); }
.esc-lista button { display: grid; grid-template-columns: 48px 1fr; gap: var(--e3); align-items: center; text-align: left; min-height: 68px; padding: var(--e2) var(--e4) var(--e2) var(--e3); border: 2px solid var(--linha); border-radius: var(--raio-m); background: var(--branco); font-weight: 800; line-height: 1.25; }
.esc-lista button:hover { border-color: var(--azul); }
.esc-lista button.hoje { border-color: var(--mostarda); background: #FDF4D9; }
.esc-lista .circulo { width: 48px; height: 48px; border-radius: 14px; background: var(--suave, var(--azul-gelo)); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: var(--t-peq); color: var(--cobalto); padding: 5px; }
.esc-lista small { display: block; font-weight: 500; color: var(--tinta-2); font-size: var(--t-peq); }

.aviso { position: fixed; z-index: 20; left: 50%; transform: translateX(-50%); bottom: 100px; width: min(420px, calc(100% - 32px)); background: var(--tinta); color: #fff; padding: var(--e4) var(--e5); border-radius: var(--raio-m); font-weight: 800; text-align: center; box-shadow: var(--sombra-2); }

.instalar { margin-top: var(--e7); padding: var(--e5); background: var(--amendoa); border-radius: var(--raio); display: grid; gap: var(--e3); max-width: 520px; }
.instalar h2 { font-size: 1.5rem; color: var(--cobalto); }
.instalar .botao { max-width: 240px; margin-top: var(--e2); }

/* ---------- Computador ---------- */
@media (min-width: 720px) {
  .cartoes { grid-template-columns: repeat(2, 1fr); }
  .receita .botoes { grid-template-columns: auto 1fr; }
  dialog { width: min(940px, calc(100% - 64px)); height: fit-content; max-height: 90vh; margin: auto; border-radius: 32px; box-shadow: var(--sombra-2); }
  dialog#escolher { width: min(600px, calc(100% - 64px)); }
  .det-capa { height: 240px; }
  .det-capa .azl { width: 120px; height: 120px; padding: 14px; }
  .det-corpo { padding: var(--e6) var(--e7) var(--e7); }
  .det-cols { grid-template-columns: 1fr 1.2fr; gap: var(--e7); }
  .det-acoes { grid-template-columns: 1fr 1fr; max-width: 460px; }
  .esc-corpo { padding: var(--e7) var(--e6) var(--e6); }
  .listas { display: block; column-count: 2; column-gap: var(--e4); }
  .seccao { break-inside: avoid; margin-bottom: var(--e4); }
  .tiles { grid-template-columns: repeat(4, 1fr); }
}

@media (min-width: 960px) {
  .cont { padding: 0 var(--e6); }
  .barra-in { padding: var(--e4) var(--e6); }
  .marca-frase { display: block; }
  .nav { position: static; display: flex; gap: var(--e2); border: 0; background: transparent; padding: 0; }
  .nav a { flex-direction: row; min-height: 48px; padding: 0 var(--e5); border-radius: 999px; gap: var(--e2); }
  .nav svg { width: 22px; height: 22px; }
  .nav a:hover { background: var(--leve); }
  .nav a[aria-current="page"] { background: var(--cobalto); color: #fff; }
  .nav a[aria-current="page"] svg { background: none; color: #fff; padding: 0; width: 22px; height: 22px; }

  .ecra, #hoje { padding-bottom: var(--e8); }
  .heroi { padding: var(--e8) 0 calc(var(--e8) + var(--e4)); border-radius: 0 0 56px 56px; }
  .heroi-in { grid-template-columns: 1.1fr 1fr; gap: var(--e7); }
  .mesa-deco { justify-content: center; gap: var(--e5); }
  .mesa-deco .azl { width: 128px; height: 128px; padding: 16px; border-radius: 22px; }
  .mesa-deco .azl:nth-child(2) { margin-top: 40px; }
  .mesa-deco .azl:nth-child(3) { margin-top: 12px; }
  .mesa-deco .azl:nth-child(4) { margin-top: 52px; }
  .faixa { padding: var(--e7) 0; border-radius: 0 0 56px 56px; margin-bottom: var(--e7); }

  .hoje-grelha { grid-template-columns: 470px minmax(0, 1fr); gap: var(--e8); align-items: start; padding-top: var(--e7); }
  .tiles { grid-template-columns: repeat(3, 1fr); }
  .abas { margin: var(--e4) 0; padding: 4px 0; flex-wrap: wrap; overflow: visible; }

  .acao { position: static; border-radius: var(--raio); box-shadow: none; border: 2px dashed var(--azul-claro); padding: var(--e4); margin-bottom: var(--e5); background: var(--azul-gelo); }
  .acao > * { max-width: none; }
  .acao.vazia .cesto-cab { display: flex; }
  .acao.vazia .cesto { display: flex; }
  .acao #gerar { display: none; }
  .cesto { min-height: 64px; flex-wrap: wrap; overflow: visible; }

  .resultado.vazio { display: grid; }
  .espera { display: grid; justify-items: center; align-content: center; gap: var(--e4); text-align: center; color: var(--tinta-2); min-height: 380px; border: 2px dashed var(--linha); border-radius: var(--raio); padding: var(--e6); }
  .resultado:not(.vazio) .espera { display: none; }
  .espera p { max-width: 28ch; font-weight: 700; }
  .cartoes { grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); }

  .dias { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--e3); align-items: start; }
  .dia > h3 { font-size: 1rem; flex-wrap: wrap; gap: var(--e1); }
  .refeicao { grid-template-columns: 1fr; gap: var(--e2); padding: var(--e3); }
  .cheio { grid-template-columns: 1fr; gap: 0; }
  .prato { flex-direction: column; align-items: flex-start; gap: var(--e2); padding: var(--e3); min-height: 120px; }
  .tirar { justify-self: start; padding: 0 var(--e2); }
  .listas { column-count: 3; column-gap: var(--e5); }
  .seccao { margin-bottom: var(--e5); }
  .aviso { bottom: var(--e6); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ---------- Conta ---------- */
.conta-btn { display: inline-flex; align-items: center; gap: var(--e2); min-height: 44px; padding: 0 var(--e4); border: 2px solid var(--linha); border-radius: 999px; background: var(--branco); color: var(--cobalto); font-weight: 800; font-size: var(--t-peq); text-decoration: none; }
.conta-btn:hover { border-color: var(--azul); }
.conta-btn .inicial { width: 30px; height: 30px; margin-left: -8px; border-radius: 50%; background: var(--mostarda); color: var(--tinta); display: inline-flex; align-items: center; justify-content: center; font-family: var(--titulo); font-weight: 800; }
.conta-btn .inicial + span { max-width: 9ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
dialog#conta-dialog { width: min(480px, calc(100% - 32px)); height: fit-content; max-height: 90vh; margin: auto; border-radius: 28px; box-shadow: var(--sombra-2); }
.conta-corpo { padding: var(--e6) var(--e5) var(--e5); display: grid; gap: var(--e4); }
.conta-corpo .email { color: var(--tinta-2); font-weight: 600; margin-top: calc(var(--e2) * -1); word-break: break-all; }
.conta-apagar { border-top: 1px dashed var(--linha); padding-top: var(--e4); display: grid; gap: var(--e3); }
.conta-apagar summary { cursor: pointer; font-weight: 700; color: var(--tinta-2); min-height: 44px; display: flex; align-items: center; }
.campo { display: grid; gap: var(--e1); }
.campo label { font-weight: 700; font-size: var(--t-peq); }
.campo input { min-height: var(--toque); padding: 0 var(--e4); border: 2px solid var(--linha); border-radius: var(--raio-m); background: var(--branco); font: inherit; font-size: 1.0625rem; color: var(--tinta); width: 100%; }
.campo input:focus { border-color: var(--azul); outline: 3px solid var(--azul-gelo); outline-offset: 0; }
.botao.perigo { background: #B3261E; border-color: #B3261E; }
.botao.perigo:hover { background: #8C1D17; border-color: #8C1D17; }
.msg-erro { color: #B3261E; font-weight: 700; min-height: 1.5em; }
.esc-lista .circulo .glifo { width: 100%; height: 100%; }
