:root { --fundo:#fff8f3; --cartao:#fff; --verde:#a3151c; --verde2:#fbe6e3; --terra:#1e5b32; --texto:#2b2a28; --suave:#7a756d; --linha:#ece5da; }
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
body { margin: 0; background: var(--fundo); color: var(--texto); font: 16px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
main { max-width: 560px; margin: 0 auto; padding: 0 16px calc(90px + env(safe-area-inset-bottom)); }
a { color: inherit; text-decoration: none; }
h1, h2, h3 { margin: 0; line-height: 1.2; }

/* Entrar */
.entrar { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; gap: 28px; }
.marca { text-align: center; } .marca .logo { font-size: 56px; } .marca h1 { color: var(--verde); font-size: 30px; margin-top: 8px; } .marca p { color: var(--suave); margin: 6px 0 0; }
form label { display: block; font-weight: 600; margin-bottom: 8px; }
input { width: 100%; font: inherit; padding: 14px 16px; border: 1.5px solid var(--linha); border-radius: 14px; background: #fff; }
input:focus { outline: none; border-color: var(--verde); }
.msg { color: var(--terra); min-height: 1.4em; text-align: center; }

/* Botões */
.bt { display: block; width: 100%; margin-top: 14px; padding: 15px; border: 0; border-radius: 14px; background: var(--verde); color: #fff; font: 700 17px/1 inherit; text-align: center; cursor: pointer; }
.bt2 { padding: 10px 12px; border: 1.5px solid var(--linha); border-radius: 12px; background: #fff; font: 600 14px/1.1 inherit; color: var(--texto); cursor: pointer; text-align: center; }
.bt2:disabled { opacity: .4; } .lim { width: 100%; margin-top: 18px; }

/* Topo */
.hero { padding: 26px 0 8px; } .hero .ola { color: var(--verde); font-weight: 700; margin: 0 0 4px; } .hero h1 { font-size: 26px; }
.busca-falsa { display: block; margin-top: 16px; padding: 14px 16px; border-radius: 14px; background: #fff; border: 1.5px solid var(--linha); color: var(--suave); }
.topo { display: flex; align-items: center; gap: 12px; padding: 22px 0 12px; position: sticky; top: 0; background: var(--fundo); z-index: 2; }
.topo h2 { font-size: 21px; } .topo p { margin: 2px 0 0; color: var(--suave); font-size: 14px; }
.voltar { font-size: 32px; line-height: 1; color: var(--verde); padding: 0 6px 4px 0; }
.sec { font-size: 15px; text-transform: uppercase; letter-spacing: .04em; color: var(--suave); margin: 24px 0 10px; }

/* Cartões e grade */
.lista { display: flex; flex-direction: column; gap: 10px; }
.card { display: flex; align-items: center; gap: 12px; padding: 12px; background: var(--cartao); border-radius: 16px; border: 1px solid var(--linha); position: relative; }
.card .ic { font-size: 26px; width: 46px; height: 46px; display: grid; place-items: center; background: var(--verde2); border-radius: 12px; flex: none; }
.card .tx { display: flex; flex-direction: column; min-width: 0; } .card b { font-size: 15.5px; } .card small { color: var(--suave); font-size: 13px; }
.card img.ic { width: 64px; height: 64px; object-fit: cover; padding: 0; background: var(--verde2); }
.card.bloq { opacity: .6; } .card .fav { position: absolute; right: 12px; top: 10px; font-size: 13px; }
.grade { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cat { background: #fff; border: 1px solid var(--linha); border-radius: 16px; padding: 14px; display: flex; flex-direction: column; gap: 4px; }
.cat span { font-size: 28px; } .cat b { font-size: 15px; } .cat small { color: var(--suave); font-size: 13px; }
.chips { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 8px; }
.chip { flex: none; padding: 8px 14px; border-radius: 999px; border: 1.5px solid var(--linha); background: #fff; font: 600 14px inherit; color: var(--texto); }
.chip.on { background: var(--verde); border-color: var(--verde); color: #fff; }
.campo { margin-bottom: 14px; }

/* Receita */
.capa { position: relative; margin: 0 0 12px; } .capa img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 18px; background: var(--verde2); }
.capa figcaption { position: absolute; right: 10px; bottom: 8px; font-size: 11px; color: #fff; background: rgba(0,0,0,.35); padding: 2px 8px; border-radius: 99px; }
.acoes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 4px; }
.troca { margin-top: 16px; background: var(--verde2); border-radius: 16px; padding: 14px 16px; } .troca b { color: var(--verde); } .troca p { margin: 4px 0 0; }
.ing { list-style: none; padding: 0; margin: 0; background: #fff; border: 1px solid var(--linha); border-radius: 16px; }
.ing li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-bottom: 1px solid var(--linha); cursor: pointer; }
.ing li:last-child { border: 0; } .ing small { color: var(--suave); }
.cx { flex: none; width: 22px; height: 22px; border-radius: 7px; border: 2px solid var(--linha); margin-top: 1px; }
.ing li.ok { color: var(--suave); text-decoration: line-through; } .ing li.ok .cx { background: var(--verde); border-color: var(--verde); }
.passos { padding-left: 22px; margin: 0; } .passos li { margin-bottom: 12px; padding-left: 4px; }
.tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; } .tags span { font-size: 12px; background: #fff; border: 1px solid var(--linha); padding: 4px 10px; border-radius: 999px; color: var(--suave); }

/* Modo cozinha */
.cozinha { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; gap: 22px; padding: 30px 4px; }
.fechar { position: fixed; top: 18px; right: 20px; font-size: 26px; color: var(--suave); }
.np { color: var(--verde); font-weight: 700; margin: 0; } .passo { font-size: 27px; line-height: 1.35; margin: 0; }
.nav2 { display: grid; grid-template-columns: 1fr 2fr; gap: 10px; } .nav2 .bt { margin: 0; }

/* Cardápio, trocas, bloqueios */
.dia { background: #fff; border: 1px solid var(--linha); border-radius: 16px; padding: 12px 14px; margin-bottom: 10px; }
.dia p { margin: 6px 0 0; } .dia a { color: var(--verde); text-decoration: underline; text-underline-offset: 2px; }
.tr { background: #fff; border: 1px solid var(--linha); border-radius: 16px; padding: 12px 14px; margin-bottom: 10px; }
.tr p { margin: 0 0 4px; } .tr .entra { font-weight: 700; color: var(--verde); } .tr small { color: var(--suave); }
.bloqueio { background: #fff; border: 1.5px dashed var(--terra); border-radius: 18px; padding: 18px; margin-top: 8px; } .bloqueio h3 { color: var(--terra); }
.bloqueio .bt { background: var(--terra); } .peq { color: var(--suave); font-size: 14px; }
.vazio, .dica { color: var(--suave); text-align: center; padding: 14px 6px; }
.aviso { font-size: 12.5px; color: var(--suave); margin-top: 26px; } .sair { text-align: center; font-size: 13px; color: var(--suave); }
.toast { position: fixed; left: 16px; right: 16px; bottom: 96px; background: var(--texto); color: #fff; padding: 12px 16px; border-radius: 12px; z-index: 9; animation: some 3s forwards; }
@keyframes some { 80% { opacity: 1; } 100% { opacity: 0; visibility: hidden; } }

/* Barra de baixo */
#nav { position: fixed; left: 0; right: 0; bottom: 0; display: flex; justify-content: space-around; background: #fff; border-top: 1px solid var(--linha); padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); z-index: 5; }
#nav a { display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 11.5px; color: var(--suave); min-width: 60px; padding: 4px 0; }
#nav a .em { font-size: 21px; } #nav a.on { color: var(--verde); font-weight: 700; }

/* Natal */
.marca .logo { width: 96px; height: 96px; border-radius: 24px; }
.centro { text-align: center; }
.hero h1 { color: var(--verde); }
.kcal { margin: 4px 0 10px; font-weight: 700; color: #b8860b; }
video.video { display: block; width: 100%; max-height: 70vh; border-radius: 18px; background: #000; margin-bottom: 8px; }
.dica-chef { margin-top: 18px; background: #fff6e0; border: 1px solid #f0d58c; border-radius: 16px; padding: 14px 16px; } .dica-chef b { color: #9a6b00; } .dica-chef p { margin: 4px 0 0; }
.banner { display: flex; align-items: center; gap: 12px; margin-top: 18px; padding: 14px 16px; border-radius: 18px; background: linear-gradient(135deg, #a3151c, #6e0d12); color: #fff; }
.banner.verde { background: linear-gradient(135deg, #2a7442, #174a28); }
.banner span { font-size: 30px; } .banner div { flex: 1; display: flex; flex-direction: column; } .banner small { opacity: .9; } .banner i { font-style: normal; font-size: 26px; }
.guia { background: #fff; border: 1px solid var(--linha); border-radius: 16px; margin: 0; padding: 12px 14px 12px 32px; } .guia li { margin: 6px 0; }
.custo { float: right; color: #1e5b32; font-weight: 700; }
.mini-rec { background: #fff; border: 1px solid var(--linha); border-radius: 16px; padding: 12px 14px; margin-bottom: 10px; }
.mini-rec summary { font-weight: 700; cursor: pointer; } .mini-rec summary small { display: block; font-weight: 400; color: var(--suave); }
.mini-rec ul, .mini-rec ol { margin: 6px 0 10px; padding-left: 22px; }
.lim { display: block; width: 100%; margin-top: 16px; text-align: center; }
.bt.video-bt { background: #1e5b32; margin: 0 0 12px; }
.vid-info { background: #fff; border: 1.5px dashed #1e5b32; border-radius: 18px; padding: 14px 16px; margin-bottom: 12px; }
.vid-prod { font-size: 20px; font-weight: 800; color: #1e5b32; margin: 0 0 4px; text-align: center; } .vid-info .peq { text-align: center; margin: 0; }
