/* =========================================================================
   Bottega do Vinho — portal de pedidos B2B
   Paleta bordeaux sobre fundo claro. Prioridade: clareza e uso.
   ========================================================================= */

:root {
    --tinta:        #211a1d;
    --tinta-fraca:  #6b6168;
    --tinta-leve:   #9a9197;
    --papel:        #f5f3f2;
    --branco:       #ffffff;
    --linha:        #e7e2e0;
    --vinho:        #7a1f3d;
    --vinho-fundo:  #f4e9ed;
    --vinho-escuro: #5d162e;
    --ouro:         #9a7b35;
    --verde:        #2f6b46;
    --verde-fundo:  #e7f0ea;
    --ambar:        #9a6a1a;
    --ambar-fundo:  #fbf0db;
    --erro:         #9a2331;
    --raio:         12px;
    --raio-sm:      8px;
    --sombra:       0 1px 2px rgba(33,26,29,.05), 0 10px 30px rgba(33,26,29,.05);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: var(--tinta);
    background: var(--papel);
    line-height: 1.5;
}
h1 { font-size: 1.5rem; margin: 0; letter-spacing: -.02em; }
h2 { font-size: 1.05rem; margin: 0 0 .25rem; letter-spacing: -.01em; }
h3 { margin: 0; }
a { color: var(--vinho); text-decoration: none; }
a:hover { text-decoration: underline; }
hr.sep { border: none; border-top: 1px solid var(--linha); margin: 1rem 0; }

/* ---------- App shell ---------------------------------------------------- */
.app { display: grid; grid-template-columns: 248px 1fr; min-height: 100vh; }

.sidebar {
    background: var(--branco);
    border-right: 1px solid var(--linha);
    display: flex; flex-direction: column;
    padding: 1.25rem 1rem;
    position: sticky; top: 0; height: 100vh;
}
.marca { display: flex; align-items: center; gap: .55rem; font-weight: 700; font-size: 1.05rem; color: var(--tinta); padding: .25rem .25rem 1.25rem; }
.marca:hover { text-decoration: none; }

.nav { display: flex; flex-direction: column; gap: .15rem; }
.nav-item {
    display: flex; align-items: center; gap: .7rem;
    padding: .6rem .7rem; border-radius: var(--raio-sm);
    color: var(--tinta-fraca); font-weight: 500; font-size: .92rem;
}
.nav-item:hover { background: var(--papel); color: var(--tinta); text-decoration: none; }
.nav-item.ativo { background: var(--vinho-fundo); color: var(--vinho); font-weight: 600; }

.sidebar-rodape { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--linha); }
.usuario { display: flex; align-items: center; gap: .6rem; margin-bottom: .6rem; }
.avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--vinho); color: #fff; display: grid; place-items: center; font-weight: 700; flex-shrink: 0; }
.usuario-dados { display: flex; flex-direction: column; overflow: hidden; }
.usuario-dados strong { font-size: .88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.usuario-dados span { font-size: .78rem; color: var(--tinta-leve); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.main { display: flex; flex-direction: column; min-width: 0; }

/* ---------- Topbar ------------------------------------------------------- */
.topbar {
    display: flex; align-items: center; gap: 1rem;
    padding: .85rem 1.75rem;
    background: var(--branco); border-bottom: 1px solid var(--linha);
    position: sticky; top: 0; z-index: 10;
}
.busca { flex: 1; max-width: 560px; display: flex; align-items: center; gap: .5rem;
    background: var(--papel); border: 1px solid var(--linha); border-radius: 999px; padding: .15rem .9rem; color: var(--tinta-leve); }
.busca input { border: none; background: none; padding: .5rem 0; width: 100%; font: inherit; color: var(--tinta); }
.busca input:focus { outline: none; }
.busca:focus-within { border-color: var(--vinho); }

.carrinho-btn { display: flex; align-items: center; gap: .6rem; margin-left: auto; color: var(--tinta); position: relative; padding: .35rem .5rem; }
.carrinho-btn:hover { text-decoration: none; }
.carrinho-sub { display: flex; flex-direction: column; line-height: 1.1; }
.carrinho-sub small { font-size: .72rem; color: var(--tinta-leve); }
.carrinho-sub strong { font-size: .95rem; }
.badge { position: absolute; top: -2px; left: 14px; min-width: 18px; height: 18px; padding: 0 4px; background: var(--vinho); color: #fff; border-radius: 999px; font-size: .68rem; font-weight: 700; display: grid; place-items: center; }

.conteudo { padding: 1.75rem; max-width: 1200px; width: 100%; }

/* ---------- Botões / form base ------------------------------------------ */
.botao { display: inline-block; padding: .55rem 1rem; border: 1px solid transparent; border-radius: var(--raio-sm);
    font: inherit; font-weight: 600; font-size: .9rem; cursor: pointer; text-align: center; transition: background-color .12s, border-color .12s; }
.botao:hover { text-decoration: none; }
.botao-primario { background: var(--vinho); color: #fff; }
.botao-primario:hover { background: var(--vinho-escuro); }
.botao-primario:disabled { background: var(--tinta-leve); cursor: not-allowed; }
.botao-secundario { background: var(--branco); color: var(--tinta); border-color: var(--linha); }
.botao-secundario:hover { border-color: var(--vinho); color: var(--vinho); }
.botao-bloco { display: block; width: 100%; }
.link-botao { background: none; border: none; padding: 0; font: inherit; color: var(--vinho); cursor: pointer; }
.link-botao:hover { text-decoration: underline; }
.link-remover { color: var(--tinta-leve); font-size: .85rem; }
.link-remover:hover { color: var(--erro); }

.campo { display: block; margin-bottom: 1rem; }
.campo > span { display: block; font-size: .82rem; font-weight: 600; margin-bottom: .35rem; }
input, textarea, select { width: 100%; padding: .55rem .65rem; border: 1px solid var(--linha); border-radius: var(--raio-sm); font: inherit; color: var(--tinta); background: var(--branco); }
textarea { resize: vertical; }
input:focus, textarea:focus, select:focus, .botao:focus-visible, a:focus-visible, button:focus-visible {
    outline: 2px solid var(--vinho); outline-offset: 2px; border-color: var(--vinho); }

.cabecalho-pagina { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.subtitulo { color: var(--tinta-fraca); margin: .25rem 0 0; font-size: .92rem; }
.rotulo { font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; color: var(--tinta-leve); font-weight: 600; }
.dica { color: var(--tinta-leve); font-size: .8rem; }
.vazio { color: var(--tinta-fraca); }

.painel { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.25rem; box-shadow: var(--sombra); }
.painel-sm { padding: 1.1rem; }

/* ---------- Alertas ------------------------------------------------------ */
.alerta { padding: .7rem .85rem; border-radius: var(--raio-sm); font-size: .9rem; margin: 1rem 0; }
.alerta-erro { background: #fbe9eb; color: var(--erro); border: 1px solid #f2c9ce; }
.alerta-aviso { background: var(--ambar-fundo); color: var(--ambar); border: 1px solid #efd9ad; }

/* ---------- Login -------------------------------------------------------- */
.login { display: grid; grid-template-columns: 1fr 1fr; min-height: 100vh; }
.login-arte { background: linear-gradient(160deg, var(--vinho), var(--vinho-escuro)); color: #fff; display: grid; place-items: center; padding: 2rem; }
.login-arte-conteudo { max-width: 380px; text-align: center; }
.login-arte h1 { font-size: 2.2rem; margin: 1rem 0 .5rem; color: #fff; }
.login-tagline { font-size: 1.05rem; opacity: .95; }
.login-nota { opacity: .7; font-size: .9rem; margin-top: 2rem; }
.login-form-area { display: grid; place-items: center; padding: 2rem; }
.login-card { width: 100%; max-width: 360px; }
.login-card > svg { display: block; margin: 0 auto 1.5rem; }
.login-links { text-align: center; font-size: .9rem; margin-top: 1rem; color: var(--tinta-fraca); }
.auth-dica { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--linha); font-size: .8rem; color: var(--tinta-leve); text-align: center; line-height: 1.6; }

/* ---------- Promo strip -------------------------------------------------- */
.promo-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--linha); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; margin-bottom: 1.75rem; }
.promo { background: var(--branco); padding: .85rem 1rem; display: flex; flex-direction: column; }
.promo strong { color: var(--vinho); font-size: .92rem; }
.promo span { font-size: .8rem; color: var(--tinta-fraca); }

/* ---------- Blocos / últimos pedidos ------------------------------------ */
.bloco { margin-bottom: 2rem; }
.bloco-cab { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }
.link-ver { font-weight: 600; font-size: .9rem; }

.cards-pedidos { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; }
.card-pedido { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1rem 1.1rem; display: flex; flex-direction: column; gap: .4rem; color: var(--tinta); }
.card-pedido:hover { text-decoration: none; border-color: var(--vinho); }
.card-pedido-cab { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.card-pedido-num { font-weight: 700; }
.card-pedido-data { font-size: .8rem; color: var(--tinta-leve); }
.card-pedido-valor { font-size: .9rem; }

/* ---------- Status ------------------------------------------------------- */
.status { display: inline-block; padding: .12rem .6rem; border-radius: 999px; font-size: .76rem; font-weight: 600; background: var(--ambar-fundo); color: var(--ambar); white-space: nowrap; }
.status-aguardando_pagamento { background: var(--ambar-fundo); color: var(--ambar); }
.status-pago { background: var(--verde-fundo); color: var(--verde); }
.status-cancelado { background: #f0e7e8; color: var(--tinta-fraca); }

/* ---------- Filtros ------------------------------------------------------ */
.filtros { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.chip { padding: .35rem .75rem; border: 1px solid var(--linha); border-radius: 999px; background: var(--branco); color: var(--tinta-fraca); font-size: .85rem; font-weight: 500; }
.chip:hover { border-color: var(--vinho); color: var(--vinho); text-decoration: none; }
.chip-on { background: var(--vinho-fundo); border-color: var(--vinho); color: var(--vinho); }
.filtro-form { display: flex; gap: .5rem; }
.filtro-form select { width: auto; padding: .35rem .6rem; font-size: .85rem; border-radius: 999px; }
.vista-toggle { display: flex; gap: 2px; border: 1px solid var(--linha); border-radius: var(--raio-sm); overflow: hidden; }
.vista-toggle a { padding: .3rem .6rem; color: var(--tinta-leve); background: var(--branco); }
.vista-toggle a.on { background: var(--vinho-fundo); color: var(--vinho); }
.vista-toggle a:hover { text-decoration: none; }

/* ---------- Grade de produtos / card ------------------------------------ */
.grade-produtos { display: grid; grid-template-columns: repeat(auto-fill, minmax(216px, 1fr)); gap: 1rem; }
.produto { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: .9rem; display: flex; flex-direction: column; }
.produto-topo { display: flex; align-items: flex-start; justify-content: space-between; }
.produto-tags { display: flex; flex-wrap: wrap; gap: .3rem; }
.tag { font-size: .68rem; font-weight: 700; padding: .12rem .45rem; border-radius: 5px; }
.tag-promo { background: var(--vinho); color: #fff; }
.tag-marca { background: var(--vinho-fundo); color: var(--vinho); font-weight: 600; }
.form-fav { margin: 0; }
.fav-btn { background: var(--papel); border: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; color: var(--tinta-leve); cursor: pointer; }
.fav-btn:hover { color: var(--vinho); }
.fav-on { color: var(--vinho); }

.produto-img { height: 130px; display: grid; place-items: center; margin: .5rem 0 .75rem; border-radius: var(--raio-sm); }
.tipo-tinto { background: linear-gradient(160deg, #f4e9ed, #efdde3); }
.tipo-branco { background: linear-gradient(160deg, #f6f2e4, #efe9d6); }
.tipo-rose { background: linear-gradient(160deg, #fbeef0, #f6e0e6); }
.tipo-espumante { background: linear-gradient(160deg, #f7f1df, #f0e7c9); }
.garrafa-corpo { fill: #3a2a30; }
.tipo-branco .garrafa-corpo { fill: #5c5430; }
.tipo-rose .garrafa-corpo { fill: #7a3a4a; }
.tipo-espumante .garrafa-corpo { fill: #4a4220; }
.garrafa-gargalo { fill: #2b1f24; }
.garrafa-rotulo { fill: rgba(255,255,255,.85); }

.produto-nome { font-size: .98rem; line-height: 1.25; margin-bottom: .3rem; min-height: 2.4em; }
.produto-meta { font-size: .78rem; color: var(--tinta-leve); margin: 0 0 .6rem; }
.produto-preco-linha { display: flex; align-items: baseline; gap: .5rem; margin-bottom: .75rem; }
.preco { font-weight: 700; font-size: 1.1rem; }
.preco-de { color: var(--tinta-leve); text-decoration: line-through; font-size: .85rem; }

.form-add { display: flex; flex-direction: column; gap: .5rem; margin-top: auto; }
.stepper { display: flex; align-items: center; border: 1px solid var(--linha); border-radius: var(--raio-sm); overflow: hidden; }
.stepper-btn { width: 36px; height: 38px; border: none; background: var(--papel); font-size: 1.1rem; cursor: pointer; color: var(--tinta); }
.stepper-btn:hover { background: var(--vinho-fundo); color: var(--vinho); }
.stepper-input { border: none; text-align: center; width: 100%; border-radius: 0; -moz-appearance: textfield; }
.stepper-input::-webkit-outer-spin-button, .stepper-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.stepper-sm .stepper-btn { height: 32px; width: 30px; }
.select-unidade { font-size: .85rem; }
.botao-add { margin-top: .1rem; }

.grade-produtos.vista-lista { grid-template-columns: 1fr; }
.vista-lista .produto { flex-direction: row; align-items: center; gap: 1rem; flex-wrap: wrap; }
.vista-lista .produto-img { width: 70px; height: 70px; margin: 0; }
.vista-lista .produto-nome { min-height: 0; flex: 1; min-width: 160px; }
.vista-lista .form-add { flex-direction: row; align-items: center; width: auto; margin: 0; }
.vista-lista .botao-add { width: auto; }

/* ---------- Checkout / pedido grid -------------------------------------- */
.pedido-grid { display: grid; grid-template-columns: 1fr 330px; gap: 1.25rem; align-items: start; }
.pedido-coluna { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.pedido-coluna-lateral { display: flex; flex-direction: column; gap: 1rem; position: sticky; top: 5rem; }

.tabela-itens { width: 100%; border-collapse: collapse; }
.tabela-itens th, .tabela-itens td { padding: .7rem .6rem; text-align: left; border-bottom: 1px solid var(--linha); font-size: .9rem; vertical-align: middle; }
.tabela-itens thead th { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--tinta-leve); }
.tabela-itens tbody tr:last-child td { border-bottom: none; }
.col-num { text-align: right; white-space: nowrap; }
.col-c { width: 130px; }
.col-acao { text-align: right; }
.item-sub { display: block; color: var(--tinta-leve); font-size: .78rem; margin-top: .15rem; }
.itens-acoes { display: flex; align-items: center; gap: 1rem; margin-top: 1rem; flex-wrap: wrap; }

.opcao { display: flex; align-items: center; gap: .65rem; padding: .7rem .8rem; border: 1px solid var(--linha); border-radius: var(--raio-sm); margin-top: .5rem; cursor: pointer; color: var(--tinta); }
.opcao:hover { border-color: var(--vinho); text-decoration: none; }
.opcao-on { border-color: var(--vinho); background: var(--vinho-fundo); }
.opcao-radio { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--tinta-leve); flex-shrink: 0; position: relative; }
.opcao-on .opcao-radio { border-color: var(--vinho); }
.opcao-on .opcao-radio::after { content: ""; position: absolute; inset: 3px; background: var(--vinho); border-radius: 50%; }
.opcao-texto { display: flex; flex-direction: column; }
.opcao-texto small { color: var(--tinta-fraca); font-size: .8rem; }
.opcao-radio-real input { width: auto; margin: 0; }

.endereco-box { margin-top: .75rem; padding: .75rem; background: var(--papel); border-radius: var(--raio-sm); }
.endereco-box p { margin: .25rem 0 0; font-size: .88rem; }
.campo-obs { margin-top: 1rem; }

.resumo-linha { display: flex; justify-content: space-between; padding: .35rem 0; font-size: .92rem; color: var(--tinta-fraca); }
.resumo-desc { color: var(--verde); }
.resumo-total { margin-top: .3rem; padding-top: .6rem; border-top: 1px solid var(--linha); font-size: 1.15rem; font-weight: 700; color: var(--tinta); }

.dados-pedido > div { padding: .5rem 0; border-bottom: 1px solid var(--linha); }
.dados-pedido > div:last-child { border-bottom: none; }
.dados-pedido p { margin: .2rem 0 0; font-size: .9rem; }

.acoes-fim { display: flex; gap: .75rem; justify-content: flex-end; margin-top: 1.5rem; flex-wrap: wrap; }
.vazio-bloco { text-align: center; background: var(--branco); border: 1px dashed var(--linha); border-radius: var(--raio); padding: 3rem 1.5rem; color: var(--tinta-fraca); }
.vazio-bloco p { margin-bottom: 1rem; }
.confirmacao-selo { width: 56px; height: 56px; margin: 0 auto 1rem; display: grid; place-items: center; border-radius: 50%; background: var(--verde-fundo); color: var(--verde); font-size: 1.6rem; font-weight: 700; }

/* ---------- PIX ---------------------------------------------------------- */
.pix-grid { display: grid; grid-template-columns: 320px 1fr; gap: 1.25rem; align-items: start; }
.pix-qr-box { text-align: center; }
.pix-valor-rotulo { font-size: .8rem; color: var(--tinta-fraca); }
.pix-valor { display: block; font-size: 1.8rem; font-weight: 700; margin: .15rem 0 1rem; }
.pix-qr { display: grid; place-items: center; padding: .5rem; }
.pix-qr svg { width: 220px; height: 220px; }
.pix-instr { font-size: .82rem; color: var(--tinta-fraca); margin-top: 1rem; }
.pix-payload { font-family: ui-monospace, monospace; font-size: .8rem; word-break: break-all; background: var(--papel); margin-bottom: .75rem; }
.form-confirmar { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--linha); display: flex; flex-direction: column; gap: .5rem; }
.form-confirmar .dica { text-align: center; }
.pix-pago { text-align: center; }
.pix-pago h2 { margin-bottom: .5rem; }
.pix-pago .botao { margin-top: 1rem; }

/* ---------- Financeiro / informativos / faq ----------------------------- */
.cards-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.card-resumo { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.1rem 1.25rem; }
.valor-grande { display: block; font-size: 1.6rem; margin-top: .25rem; }
.lista-informativos { display: flex; flex-direction: column; gap: 1rem; }
.informativo p { margin: .5rem 0 0; color: var(--tinta-fraca); }
.lista-faq { padding: .25rem 1.25rem; }
.faq-item { border-bottom: 1px solid var(--linha); padding: .25rem 0; }
.faq-item:last-child { border-bottom: none; }
.faq-item summary { padding: .85rem 0; cursor: pointer; font-weight: 600; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::before { content: "+ "; color: var(--vinho); font-weight: 700; }
.faq-item[open] summary::before { content: "− "; }
.faq-item p { margin: 0 0 1rem; color: var(--tinta-fraca); }

/* ---------- Responsivo --------------------------------------------------- */
@media (max-width: 1000px) {
    .pedido-grid, .pix-grid { grid-template-columns: 1fr; }
    .pedido-coluna-lateral { position: static; }
    .promo-strip { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
    .app { grid-template-columns: 1fr; }
    .sidebar { position: static; height: auto; flex-direction: row; flex-wrap: wrap; align-items: center; gap: .5rem; }
    .sidebar .nav { flex-direction: row; flex-wrap: wrap; }
    .nav-item span { display: none; }
    .sidebar-rodape { margin: 0 0 0 auto; padding: 0; border: none; display: flex; gap: .75rem; align-items: center; }
    .usuario-dados { display: none; }
    .login { grid-template-columns: 1fr; }
    .login-arte { display: none; }
    .conteudo { padding: 1rem; }
    .item-sub { display: none; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* =========================================================================
   Vitrine pública (sem login)
   ========================================================================= */
body.publico { background: var(--papel); }

.topbar-pub {
    display: flex; align-items: center; gap: 1.25rem;
    padding: .85rem 1.75rem; background: var(--branco);
    border-bottom: 1px solid var(--linha); position: sticky; top: 0; z-index: 10;
}
.topbar-pub .marca { padding: 0; }
.topbar-pub .busca { flex: 1; max-width: 520px; }
.topbar-pub-acoes { display: flex; gap: .6rem; margin-left: auto; }
.topbar-pub-acoes .botao { padding: .5rem .9rem; }

.conteudo-pub { max-width: 1120px; margin: 0 auto; padding: 1.5rem 1.75rem 3rem; }

.hero {
    background: linear-gradient(150deg, var(--vinho), var(--vinho-escuro));
    color: #fff; border-radius: var(--raio); padding: 2.5rem 2rem;
    text-align: center; margin-bottom: 2rem;
}
.hero-conteudo h1 { color: #fff; font-size: 2rem; margin: .5rem 0 .35rem; }
.hero-conteudo p { opacity: .95; margin: 0; }

.destaques-row { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(200px, 1fr);
    gap: 1rem; overflow-x: auto; padding-bottom: .5rem; }
.destaque-item { min-width: 0; }
@media (max-width: 760px) { .destaques-row { grid-auto-columns: minmax(170px, 80%); } }

.produto-pub .produto-min { font-size: .8rem; color: var(--tinta-fraca); margin: 0 0 .75rem; }
.produto-pub .produto-nome { min-height: 2.4em; }
.produto-pub .fav-btn { background: var(--papel); }

.paginacao { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    margin-top: 1.5rem; flex-wrap: wrap; }
.pag-info { color: var(--tinta-fraca); font-size: .88rem; }
.pag-nums { display: flex; gap: .3rem; }
.pag-num { min-width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--linha);
    border-radius: var(--raio-sm); background: var(--branco); color: var(--tinta-fraca); font-weight: 600; font-size: .88rem; }
.pag-num:hover { border-color: var(--vinho); color: var(--vinho); text-decoration: none; }
.pag-atual { background: var(--vinho); border-color: var(--vinho); color: #fff; }

.rodape-pub { background: var(--branco); border-top: 1px solid var(--linha); margin-top: 2rem; }
.rodape-grid { max-width: 1120px; margin: 0 auto; padding: 2rem 1.75rem 1.5rem;
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.rodape-tit { display: block; font-weight: 700; font-size: .82rem; margin-bottom: .6rem; }
.rodape-grid p, .rodape-grid a { font-size: .86rem; color: var(--tinta-fraca); line-height: 1.7; }
.rodape-grid a { display: inline-block; }
.pag-icones { display: flex; gap: .4rem; flex-wrap: wrap; }
.pag-badge { font-size: .72rem; font-weight: 700; color: var(--vinho); background: var(--vinho-fundo);
    border-radius: 5px; padding: .2rem .5rem; }
.rodape-base { max-width: 1120px; margin: 0 auto; padding: 1rem 1.75rem; border-top: 1px solid var(--linha);
    display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font-size: .8rem; color: var(--tinta-leve); }
.rodape-base a { color: var(--tinta-leve); }

@media (max-width: 760px) {
    .topbar-pub { flex-wrap: wrap; }
    .topbar-pub .busca { order: 3; width: 100%; flex-basis: 100%; max-width: none; }
    .topbar-pub-acoes .botao { padding: .45rem .7rem; font-size: .82rem; }
    .rodape-grid { grid-template-columns: repeat(2, 1fr); }
    .conteudo-pub { padding: 1rem; }
}

/* =========================================================================
   Cadastro (Solicitar acesso)
   ========================================================================= */
.topbar-cad { display: flex; align-items: center; justify-content: space-between;
    padding: .85rem 1.75rem; background: var(--branco); border-bottom: 1px solid var(--linha); }
.topbar-cad .marca { padding: 0; }
.cad-entrar { font-size: .9rem; color: var(--tinta-fraca); }
.conteudo-cad { max-width: 1000px; margin: 0 auto; padding: 2.5rem 1.75rem; }

.cad { display: grid; grid-template-columns: 260px 1fr; gap: 2.5rem; align-items: start; }
.cad-lateral h1 { font-size: 1.4rem; margin-bottom: 1.5rem; }
.cad-passos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.25rem; }
.cad-passos li { display: flex; align-items: center; gap: .7rem; color: var(--tinta-leve); font-weight: 500; position: relative; }
.cad-passo-marca { width: 22px; height: 22px; border-radius: 50%; border: 2px solid currentColor;
    display: grid; place-items: center; font-size: .7rem; flex-shrink: 0; }
.cad-passos li.atual { color: var(--vinho); font-weight: 700; }
.cad-passos li.feito { color: var(--verde); }
.cad-passos li.feito .cad-passo-marca { background: var(--verde); border-color: var(--verde); color: #fff; }

.cad-conteudo h2 { font-size: 1.35rem; }
.cad-conteudo .subtitulo { margin-bottom: 1.25rem; }
.cad-card { max-width: 520px; }
.cad-legenda { display: block; font-size: .74rem; font-weight: 700; letter-spacing: .04em;
    text-transform: uppercase; color: var(--tinta-leve); margin-bottom: 1rem; }
.cad-linha { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.cad-acoes { display: flex; align-items: center; justify-content: flex-end; gap: 1.25rem; margin-top: .5rem; }
.cad-cancelar { color: var(--tinta-fraca); }
.cad-cancelar:hover { color: var(--erro); }
.cad-codigo { letter-spacing: .5em; text-align: center; font-size: 1.3rem; font-weight: 700; }
.alerta-ok { background: var(--verde-fundo); color: var(--verde); border: 1px solid #bfe0cb; }

@media (max-width: 760px) {
    .cad { grid-template-columns: 1fr; gap: 1.5rem; }
    .cad-passos { flex-direction: row; flex-wrap: wrap; gap: .75rem 1.25rem; }
    .cad-linha { grid-template-columns: 1fr; }
    .conteudo-cad { padding: 1.25rem 1rem; }
}

/* =========================================================================
   Back-office (vendedor)
   ========================================================================= */
.barra-topo-escura { background: #211a1d; color: #cfc7cb; font-size: .82rem;
    padding: .5rem 1.75rem; display: flex; justify-content: space-between; }
.barra-topo-escura .barra-topo-dir { color: #fff; }
.avatar-vend { background: var(--tinta); }
.cliente-sel { display: flex; flex-direction: column; margin: 0 0 .75rem; }
.cliente-sel span { color: var(--tinta-leve); font-size: .85rem; }
.linha-form { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.linha-form select, .linha-form input[type="search"], .linha-form input[type="text"] { flex: 1; min-width: 140px; }
.linha-form .qtd-input { flex: 0 0 4.5rem; }
.linha-form .select-unidade { flex: 0 0 auto; width: auto; }

.lista-tarefas { list-style: none; margin: 0; padding: 0; }
.tarefa { display: flex; align-items: center; gap: .6rem; padding: .6rem 0; border-bottom: 1px solid var(--linha); }
.tarefa:last-child { border-bottom: none; }
.tarefa-check { background: none; border: none; font-size: 1.2rem; cursor: pointer; color: var(--vinho); padding: 0; line-height: 1; }
.tarefa-feita span { text-decoration: line-through; color: var(--tinta-leve); }

/* Aprovação de acesso */
.badge-nav { position: static; margin-left: auto; }
.acoes-inline { display: flex; gap: .75rem; align-items: center; justify-content: flex-end; }
.acoes-inline form { margin: 0; }

/* Gestão de produtos */
.form-produto { max-width: 640px; }
.linha-inativa { opacity: .55; }
.linha-inativa strong { text-decoration: line-through; }
.campo-check .check-linha { display: flex; align-items: center; gap: .5rem; padding: .55rem 0; }
.campo-check input[type="checkbox"] { width: auto; margin: 0; }
.campo-check .check-linha span { font-weight: 400; font-size: .92rem; }
.form-produto .preco-de { font-size: .8rem; }

/* Endereços / status extra */
.lista-enderecos { display: flex; flex-direction: column; gap: .75rem; }
.endereco-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.endereco-item p { margin: .3rem 0 0; font-size: .9rem; }
.status-aguardando_boleto { background: var(--ambar-fundo); color: var(--ambar); }
.status-separando { background: #e8eaf3; color: #40498c; }
.status-enviado   { background: #e5f0f6; color: #26647f; }
.status-entregue  { background: var(--verde-fundo); color: var(--verde); }

/* Ilustração de garrafa (SVG vetorial, alta definição) */
.produto-img { display: flex; align-items: flex-end; justify-content: center;
    height: 150px; padding: .25rem 0; background:
    radial-gradient(120% 80% at 50% 100%, rgba(0,0,0,.05), transparent 70%); }
.garrafa-svg { height: 100%; width: auto; display: block; }
.produto-card-publico .produto-img { height: 130px; }

/* Fotos de produto (upload) */
.produto-foto { height: 100%; width: 100%; object-fit: contain; display: block; }
.foto-produto-edit { display: flex; gap: 1.25rem; align-items: flex-start; flex-wrap: wrap; }
.foto-preview { flex: 0 0 130px; height: 170px; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: .4rem; border: 1px dashed var(--linha);
    border-radius: 10px; padding: .5rem; background: var(--fundo-suave); }
.foto-preview img { max-height: 140px; max-width: 110px; object-fit: contain; }
.foto-preview .garrafa-svg { height: 130px; }
.foto-preview .dica { font-size: .72rem; text-align: center; }
.foto-campos { flex: 1; min-width: 260px; }
.foto-campos input[type="file"] { padding: .5rem; border: 1px solid var(--linha); border-radius: 8px;
    background: #fff; width: 100%; }
.check-linha { display: flex; align-items: center; gap: .5rem; margin-top: .5rem; font-size: .9rem; }
.check-linha input { width: auto; }
.td-produto { display: flex; align-items: center; gap: .65rem; }
.mini-foto { flex: 0 0 34px; height: 46px; display: flex; align-items: center; justify-content: center; }
.mini-foto img { max-height: 46px; max-width: 34px; object-fit: contain; border-radius: 3px; }
.mini-foto .garrafa-svg { height: 44px; }

/* Ficha do vinho */
.migalhas { margin: 0 0 1rem; font-size: .9rem; }
.ficha { display: grid; grid-template-columns: 290px 1fr; gap: 2rem; align-items: start; }
.ficha-visual { display: flex; flex-direction: column; gap: .75rem; }
.ficha-foto { background: var(--fundo-suave); border: 1px solid var(--linha); border-radius: 14px;
    height: 340px; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.ficha-foto img { max-height: 300px; max-width: 100%; object-fit: contain; }
.ficha-foto .garrafa-svg { height: 300px; }
.ficha-nome { font-family: Georgia, serif; font-size: 1.9rem; margin: .4rem 0 .2rem; line-height: 1.15; }
.ficha-sub { color: var(--tinta-leve); margin: 0 0 1rem; }
.ficha-descricao { font-size: 1rem; line-height: 1.7; margin-bottom: 1.25rem; }
.ficha-h2 { font-size: 1rem; text-transform: uppercase; letter-spacing: .06em;
    color: var(--tinta-leve); margin: 1.25rem 0 .5rem; }
.ficha-texto { margin: 0; line-height: 1.6; }
.ficha-tabela { display: grid; grid-template-columns: 1fr 1fr; gap: .1rem 1.5rem; margin: 0; }
.ficha-tabela > div { display: flex; justify-content: space-between; gap: 1rem;
    padding: .5rem 0; border-bottom: 1px solid var(--linha); }
.ficha-tabela dt { color: var(--tinta-leve); font-size: .88rem; margin: 0; }
.ficha-tabela dd { margin: 0; font-weight: 600; font-size: .9rem; text-align: right; }
.ficha-compra { margin-top: 1.5rem; padding: 1.1rem; border: 1px solid var(--linha);
    border-radius: 12px; background: var(--fundo-suave); }
.ficha-preco { display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; margin-bottom: .75rem; }
.preco-grande { font-size: 1.7rem; }
.ficha-form { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
.produto-img { cursor: pointer; transition: transform .15s ease; text-decoration: none; }
.produto-img:hover { transform: translateY(-2px); }
.produto-nome a { color: inherit; text-decoration: none; }
.produto-nome a:hover { text-decoration: underline; }
@media (max-width: 780px) { .ficha { grid-template-columns: 1fr; } .ficha-tabela { grid-template-columns: 1fr; } }
