:root{
  --verde-900:#0f2119;
  --verde-800:#173626;
  --verde-700:#1f4832;
  --verde-600:#2b5c40;
  --creme-100:#fbf4e4;
  --creme-200:#f4e9cf;
  --creme-300:#ecdcb6;
  --dourado-500:#cf9d45;
  --dourado-600:#b3822f;
  --terracota-500:#c1592f;
  --carvao-900:#211f1a;
  --carvao-700:#3a352c;
  --cinza-600:#726b5c;
  --cinza-300:#d8cfb8;
  --branco:#fffdf8;
  --sombra: 0 12px 30px -12px rgba(15,33,25,0.35);
  --radius-lg: 22px;
  --radius-md: 14px;
  --radius-sm: 8px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Inter',sans-serif;
  background:var(--creme-100);
  color:var(--carvao-900);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
button{font-family:inherit;cursor:pointer;}
h1,h2,h3,h4{font-family:'Fraunces',serif;margin:0;letter-spacing:-0.01em;}
p{margin:0;}
.script{font-family:'Caveat',cursive;}
.container{max-width:1360px;margin:0 auto;padding:0 clamp(24px,4vw,56px);}
.eyebrow{
  font-size:12.5px;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--dourado-600);
  display:inline-flex;align-items:center;gap:9px;
}
.eyebrow::before{
  content:"";width:26px;height:14px;flex-shrink:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 20'%3E%3Cline x1='6' y1='16' x2='34' y2='4' stroke='%23c1592f' stroke-width='2.5' stroke-linecap='round'/%3E%3Cellipse cx='6' cy='16' rx='3' ry='2' fill='%23c1592f'/%3E%3Cellipse cx='34' cy='4' rx='3' ry='2' fill='%23c1592f'/%3E%3C/svg%3E") no-repeat center/contain;
}
.contactos-section .eyebrow::before, .hero-eyebrow::before{
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 20'%3E%3Cline x1='6' y1='16' x2='34' y2='4' stroke='%23cf9d45' stroke-width='2.5' stroke-linecap='round'/%3E%3Cellipse cx='6' cy='16' rx='3' ry='2' fill='%23cf9d45'/%3E%3Cellipse cx='34' cy='4' rx='3' ry='2' fill='%23cf9d45'/%3E%3C/svg%3E") no-repeat center/contain;
}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 24px;border-radius:999px;
  font-weight:600;font-size:15px;
  border:1.5px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space:nowrap;
}
.btn:active{transform:scale(0.97);}
.btn-gold{background:var(--dourado-500);color:var(--verde-900);}
.btn-gold:hover{background:var(--dourado-600);}
.btn-outline-light{border-color:rgba(255,253,248,0.55);color:var(--branco);}
.btn-outline-light:hover{background:rgba(255,253,248,0.12);}
.btn-outline-dark{border-color:var(--verde-800);color:var(--verde-800);}
.btn-outline-dark:hover{background:var(--verde-800);color:var(--branco);}
.btn-dark{background:var(--verde-800);color:var(--branco);}
.btn-dark:hover{background:var(--verde-900);}
.btn-sm{padding:9px 16px;font-size:13.5px;}
.icon{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}

/* ---------- MODE SWITCHER ----------
   Escondido por omissão — não é para o cliente ver nem clicar.
   Só aparece depois de a equipa entrar no painel (ver app.js). */
#mode-switch-bar{
  display:none;
  position:sticky;top:0;z-index:500;
  background:var(--carvao-900);
  align-items:center;justify-content:center;
  padding:9px 16px;
  gap:12px;
}
#mode-switch-bar.show{display:flex;}
#mode-switch-bar .msb-label{
  color:rgba(251,244,228,0.45);font-size:11.5px;font-weight:600;
  text-transform:uppercase;letter-spacing:0.07em;
  position:absolute;left:24px;display:none;
}
#mode-switch{
  display:flex;gap:2px;
  background:rgba(251,244,228,0.08);
  padding:4px;border-radius:999px;
  border:1px solid rgba(255,255,255,0.08);
}
#mode-switch button{
  background:transparent;border:none;color:rgba(251,244,228,0.55);
  font-size:13px;font-weight:600;padding:8px 18px;border-radius:999px;
  display:flex;align-items:center;gap:7px;
  transition:all .18s ease;
}
#mode-switch button.active{background:var(--creme-100);color:var(--verde-900);}
#mode-switch button:not(.active):hover{color:var(--branco);}
@media (min-width:760px){
  #mode-switch-bar .msb-label{display:block;}
}

.view{display:none;}
.view.active{display:block;}

/* ---------- TOAST ---------- */
#toast{
  position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--verde-900);color:var(--creme-100);
  padding:14px 22px;border-radius:12px;font-size:14px;font-weight:500;
  display:flex;align-items:center;gap:10px;
  box-shadow:var(--sombra);z-index:10000;
  opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.2,.8,.2,1);
}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto;}
#toast .dot{width:8px;height:8px;border-radius:50%;background:var(--dourado-500);flex-shrink:0;}

/* ================= SITE HEADER / NAV ================= */
.site-header{
  position:sticky;top:0;z-index:100;
  background:var(--verde-800);
  border-bottom:1px solid rgba(255,253,248,0.08);
}
/* A barra de troca site/painel só existe quando a equipa já está
   autenticada — nesse caso o cabeçalho tem de colar logo abaixo dela
   em vez de no topo do ecrã. --switch-bar-h é medida em JS (app.js,
   revelarSwitchBar) porque a altura real da barra varia com o ecrã. */
#mode-switch-bar.show ~ #view-site .site-header{
  top:var(--switch-bar-h, 42px);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:82px;gap:24px;position:relative;}
.brand{display:flex;align-items:center;position:relative;padding-left:122px;min-height:1px;}
.brand-logo{
  position:absolute;left:0;top:50%;transform:translateY(-34%);
  width:104px;height:104px;border-radius:50%;flex-shrink:0;
  border:3px solid var(--creme-100);
  box-shadow:0 14px 28px -8px rgba(0,0,0,0.45);
  z-index:5;
}
.brand-name{font-size:16px;line-height:1.3;}
.brand-logo-sm{width:34px;height:34px;position:static;transform:none;border-width:2px;box-shadow:none;}
.footer-inner .brand{padding-left:0;}
.footer-inner .brand-logo-sm{position:static;}
.footer-inner .brand-name{font-size:15px;}
.brand-name{
  font-family:'Fraunces',serif;font-weight:600;font-size:14.5px;line-height:1.15;
  color:var(--creme-100);
}
.brand-name-sm{font-size:15px;}
.nav-links{display:flex;gap:30px;flex:1;justify-content:center;}
.nav-links a{
  color:rgba(251,244,228,0.78);font-size:14.5px;font-weight:500;
  transition:color .15s ease;position:relative;
}
.nav-links a:hover{color:var(--branco);}
.nav-cta{flex-shrink:0;}

/* ---- mobile menu button + panel ---- */
.mobile-menu-btn{
  display:none;background:transparent;border:none;color:var(--creme-100);
  width:38px;height:38px;flex-shrink:0;align-items:center;justify-content:center;
  border-radius:8px;position:relative;
}
.mobile-menu-btn:hover{background:rgba(251,244,228,0.1);}
.mobile-menu-btn .icon{width:22px;height:22px;position:absolute;transition:opacity .15s ease, transform .15s ease;}
.mobile-menu-btn .icon-close{opacity:0;transform:rotate(-90deg) scale(0.7);}
.mobile-menu-btn.open .icon-burger{opacity:0;transform:rotate(90deg) scale(0.7);}
.mobile-menu-btn.open .icon-close{opacity:1;transform:rotate(0) scale(1);}

.mobile-nav{
  display:flex;flex-direction:column;
  background:var(--verde-800);
  border-top:1px solid rgba(251,244,228,0.1);
  max-height:0;overflow:hidden;
  transition:max-height .28s ease;
}
.mobile-nav.open{max-height:520px;}
.mobile-nav a{
  color:rgba(251,244,228,0.85);font-size:15.5px;font-weight:500;
  padding:15px 32px;border-bottom:1px solid rgba(251,244,228,0.08);
}
.mobile-nav a:hover{background:rgba(251,244,228,0.06);}
.mobile-nav-cta{margin:16px 32px 22px;justify-content:center;border-bottom:none !important;}

/* ================= HERO ================= */
.hero{position:relative;min-height:clamp(640px,72vh,760px);display:flex;align-items:center;overflow:hidden;color:var(--branco);}
.hero-media{position:absolute;inset:0;background:linear-gradient(160deg,#2b2016 0%, #3a2b1c 45%, #241a10 100%);}
.hero-scene{position:absolute;inset:0;opacity:0.9;}
.beam{position:absolute;top:0;left:8%;width:34%;height:100%;background:linear-gradient(180deg, rgba(255,220,150,0.14), transparent 70%);transform:skewX(-8deg);}
.shelf{position:absolute;top:10%;right:6%;width:30%;height:60%;display:flex;flex-wrap:wrap;align-content:flex-start;gap:14px;}
.shelf span{width:26px;height:38px;background:rgba(207,157,69,0.35);border-radius:3px 3px 6px 6px;box-shadow:inset 0 -6px 10px rgba(0,0,0,0.25);}
.table-row{position:absolute;bottom:6%;left:0;right:0;display:flex;justify-content:center;gap:60px;}
.plate{width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 35% 30%, #fffdf8 0%, #e9dcbd 55%, #c7ad7c 100%);box-shadow:0 20px 40px rgba(0,0,0,0.35);}
.plate.p1{width:90px;height:90px;margin-top:30px;}
.plate.p3{width:100px;height:100px;margin-top:18px;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg, rgba(15,22,14,0.82) 0%, rgba(15,22,14,0.55) 55%, rgba(15,22,14,0.25) 100%);}
.hero-content{position:relative;z-index:2;max-width:680px;}
.hero-eyebrow{color:var(--dourado-500);margin-bottom:20px;}
.hero-title{font-size:clamp(44px,4.6vw,72px);line-height:1.04;font-weight:700;margin-bottom:22px;}
.hero-sub{font-size:clamp(16px,1.3vw,20px);color:rgba(251,244,228,0.88);margin-bottom:36px;max-width:480px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}

/* ================= MENU DO DIA STRIP ================= */
.menu-dia-strip{background:var(--creme-200);border-bottom:1px solid var(--creme-300);}
.menu-dia-inner{display:flex;align-items:flex-start;gap:26px;padding:22px 32px;}
.menu-dia-badge{
  display:flex;align-items:center;gap:8px;flex-shrink:0;
  background:var(--verde-800);color:var(--creme-100);
  padding:9px 16px;border-radius:999px;font-size:13px;font-weight:700;
  letter-spacing:0.03em;
  align-self:center;
}
.menu-dia-content{
  display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:20px;row-gap:10px;
  align-items:center;flex:1;font-size:14.5px;color:var(--carvao-700);min-width:0;
}
.menu-dia-content b{color:var(--carvao-900);}
.menu-dia-content .md-main{display:flex;gap:28px;flex-wrap:wrap;align-items:baseline;min-width:0;}
.menu-dia-content .md-dishes{min-width:0;line-height:1.45;}
.menu-dia-content .md-price{
  background:var(--dourado-500);color:var(--verde-900);font-weight:700;
  padding:5px 14px;border-radius:999px;font-size:14px;
  grid-column:2;grid-row:1 / span 2;justify-self:end;align-self:center;
}

/* ================= GENERIC SECTIONS ================= */
.section{padding:clamp(72px,9vw,128px) 0;}
section[id]{scroll-margin-top:132px;}
.section-alt{background:var(--creme-200);}
.section-title{font-size:clamp(30px,2.6vw,40px);font-weight:600;margin-top:10px;max-width:640px;line-height:1.15;}
.section-text{color:var(--cinza-600);font-size:15.5px;margin-top:16px;max-width:520px;line-height:1.6;}
.section-text-wide{max-width:680px;}
.placeholder-note{font-style:italic;}

/* ================= EMENTA ================= */
.menu-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px;margin-top:48px;}
.menu-col-title{
  font-size:19px;color:var(--verde-800);margin-bottom:16px;
  padding-bottom:10px;border-bottom:2px solid var(--creme-300);
}
.menu-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px;}
.menu-list li{display:flex;justify-content:space-between;gap:10px;font-size:14.5px;}
.menu-list em{font-style:normal;color:var(--dourado-600);font-weight:600;white-space:nowrap;}

.semana-site-title{font-size:19px;font-weight:600;margin-top:8px;margin-bottom:24px;max-width:520px;}
.semana-site-list{display:flex;flex-direction:column;border:1px solid var(--creme-300);border-radius:var(--radius-md);overflow:hidden;margin-top:48px;}
.semana-site-row{
  display:grid;grid-template-columns:120px 1fr auto;gap:16px;align-items:center;
  padding:14px 20px;border-bottom:1px solid var(--creme-300);background:var(--branco);font-size:14px;
}
.semana-site-row:last-child{border-bottom:none;}
.semana-site-row .ss-dia{font-weight:700;color:var(--verde-800);font-family:'Fraunces',serif;}
.semana-site-row .ss-prato{color:var(--carvao-700);}
.semana-site-row .ss-prato b{color:var(--carvao-900);}
.semana-site-row .ss-preco{color:var(--dourado-600);font-weight:600;white-space:nowrap;}
.semana-site-row.ss-especial{background:#fbf1de;}
.semana-site-row.ss-especial .ss-prato b{color:var(--terracota-500);}
.ss-tag{
  display:inline-block;margin-left:8px;background:var(--dourado-500);color:var(--verde-900);
  font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:0.03em;vertical-align:middle;
}
.semana-site-row.ss-fechado{color:var(--cinza-600);font-style:italic;background:var(--creme-200);}
.semana-site-intro{padding:14px 20px;font-size:13.5px;color:var(--carvao-700);background:var(--creme-200);border-bottom:1px solid var(--creme-300);line-height:1.55;}
.semana-site-intro b{color:var(--carvao-900);}
.ss-tag-hoje{background:var(--verde-800);color:var(--creme-100);margin-left:6px;}

/* ================= RESERVAS ================= */
.reservas-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:64px;align-items:start;}
.reservas-info-list{display:flex;flex-direction:column;gap:14px;margin-top:26px;}
.info-row{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--carvao-700);}
.info-row .icon{color:var(--dourado-600);flex-shrink:0;}
.sala-sugestao{
  margin-top:30px;background:var(--verde-800);color:var(--branco);
  border-radius:var(--radius-md);padding:20px 22px;
  display:flex;justify-content:space-between;align-items:center;
}
.sala-label{font-size:12.5px;text-transform:uppercase;letter-spacing:0.08em;color:rgba(251,244,228,0.65);}
.sala-value{text-align:right;}
.sala-value strong{display:block;font-family:'Fraunces',serif;font-size:20px;}
.sala-value span{font-size:12.5px;color:rgba(251,244,228,0.7);}
.sala-disclaimer{font-size:12.5px;color:var(--cinza-600);margin-top:10px;line-height:1.5;}

.reservas-form{
  background:var(--branco);border-radius:var(--radius-lg);padding:36px;
  box-shadow:var(--sombra);display:flex;flex-direction:column;gap:18px;
  border:1px solid var(--creme-300);
}
.form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;}
.reservas-form input[type=text], .reservas-form input[type=tel], .reservas-form input[type=date], .reservas-form select, .reservas-form textarea{min-width:0;width:100%;}
.reservas-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600;color:var(--carvao-700);}
.full-label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600;color:var(--carvao-700);}
.reservas-form input[type=text], .reservas-form input[type=tel], .reservas-form input[type=date], .reservas-form select, .reservas-form textarea{
  font-family:inherit;font-size:14.5px;font-weight:400;color:var(--carvao-900);
  border:1.5px solid var(--creme-300);border-radius:var(--radius-sm);padding:11px 13px;
  background:var(--creme-100);
}
.reservas-form textarea{resize:vertical;}
.reservas-form input:focus, .reservas-form select:focus, .reservas-form textarea:focus{outline:2px solid var(--dourado-500);outline-offset:1px;}
.stepper{display:flex;align-items:center;border:1.5px solid var(--creme-300);border-radius:var(--radius-sm);overflow:hidden;background:var(--creme-100);width:fit-content;}
.stepper button{width:38px;height:38px;background:var(--creme-200);border:none;font-size:18px;font-weight:600;color:var(--verde-800);}
.stepper button:hover{background:var(--creme-300);}
.stepper input{width:44px;text-align:center;border:none !important;background:transparent !important;font-weight:600;font-size:15px;}
.checkbox-label{flex-direction:row !important;align-items:center;gap:10px !important;font-weight:500 !important;justify-content:flex-start;}
.checkbox-label input{width:17px;height:17px;accent-color:var(--verde-800);}
.grupo-note{
  background:var(--creme-200);border-left:3px solid var(--dourado-500);
  padding:12px 16px;font-size:13.5px;color:var(--carvao-700);border-radius:0 var(--radius-sm) var(--radius-sm) 0;line-height:1.55;
}
.reservas-submit{justify-content:center;margin-top:4px;}
.reserva-confirmado{
  display:flex;gap:12px;align-items:flex-start;background:#e9f2e8;border:1px solid #bcd8ba;
  border-radius:var(--radius-sm);padding:14px 16px;font-size:13.5px;color:#245231;
}
.reserva-confirmado .icon{margin-top:2px;flex-shrink:0;color:#2e7d46;}
.reserva-confirmado p{margin-top:4px;color:#3a6b47;}

/* ================= GRUPOS (site) ================= */
.grupos-menus{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:44px;}
.grupo-card{background:var(--creme-200);border-radius:var(--radius-lg);padding:30px 32px;border:1px solid var(--creme-300);display:flex;flex-direction:column;align-items:stretch;}
.grupo-card h3{font-size:21px;color:var(--verde-800);margin-bottom:16px;}
.grupo-list{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:10px;}
.grupo-list li{font-size:14.5px;padding-left:22px;position:relative;}
.grupo-list li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:50%;background:var(--dourado-500);}
.grupo-note-small{font-size:13px;color:var(--cinza-600);line-height:1.5;margin-top:14px;}
.grupo-subtitle{font-size:13.5px;font-weight:600;color:var(--verde-800);margin:10px 0 6px;}
.grupo-list-pratos{margin-bottom:16px;}
.grupo-list-pratos + .grupo-list{margin-top:0;}
.grupo-list-pratos li{font-weight:600;color:var(--carvao-900);}
.grupo-precos{
  display:flex;flex-direction:column;gap:6px;margin:16px 0 0;
  background:var(--branco);border:1px solid var(--creme-300);border-radius:var(--radius-sm);
  padding:14px 16px;
  margin-top:auto;
}
.grupo-preco-row{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;gap:10px;}
.grupo-preco-row span:first-child{color:var(--carvao-700);}
.grupo-preco-row b{color:var(--dourado-600);font-size:15px;white-space:nowrap;}
.grupos-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:52px;}
.flow-step{text-align:left;}
.flow-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;background:var(--verde-800);color:var(--creme-100);
  font-family:'Fraunces',serif;font-weight:600;font-size:15px;margin-bottom:14px;
}
.flow-step p{font-size:14px;color:var(--carvao-700);line-height:1.5;}

/* ================= GALERIA ================= */
.galeria-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:20px;}
.galeria-card{
  aspect-ratio:4/3;border-radius:var(--radius-md);position:relative;overflow:hidden;
  display:flex;align-items:flex-end;padding:18px;isolation:isolate;
}
.galeria-card::before{
  content:"";position:absolute;inset:0;z-index:0;opacity:0.5;
  background:repeating-linear-gradient(115deg, rgba(255,255,255,0.07) 0 2px, transparent 2px 14px);
}
.galeria-card::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg, rgba(0,0,0,0.05) 30%, rgba(0,0,0,0.55) 100%);}
.galeria-card span{color:var(--branco);font-size:13.5px;font-weight:600;position:relative;z-index:2;text-shadow:0 2px 8px rgba(0,0,0,0.4);}
.galeria-icon{
  position:absolute;top:16px;right:16px;z-index:2;width:34px;height:34px;border-radius:50%;
  background:rgba(255,253,248,0.16);display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(2px);
}
.galeria-icon .icon{width:17px;height:17px;color:var(--creme-100);}
.gc-1{background:linear-gradient(135deg,#3a2b1c,#5a4530);}
.gc-2{background:linear-gradient(135deg,#4a3420,#6b4e2e);}
.gc-3{background:linear-gradient(135deg,#7a5230,#c1592f);}
.gc-4{background:linear-gradient(135deg,#2b4a3a,#3f6b52);}
.gc-5{background:linear-gradient(135deg,#5c6b4a,#8a9a6e);}
.gc-6{background:linear-gradient(135deg,#2b2017,#4a3728);}

/* ================= CONTACTOS ================= */
.contactos-section{background:var(--verde-900);color:var(--branco);}
.contactos-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;align-items:center;}
.contacto-row{display:flex;align-items:center;gap:12px;font-size:15px;margin-top:16px;color:rgba(251,244,228,0.9);flex-wrap:wrap;}
.contacto-row .icon{color:var(--dourado-500);flex-shrink:0;}
.contacto-row a{color:inherit;text-decoration:underline;text-decoration-color:rgba(251,244,228,0.3);}
.contacto-row a:hover{text-decoration-color:var(--dourado-500);}
.contacto-tag{font-size:11.5px;font-weight:600;color:var(--verde-900);background:var(--dourado-500);padding:2px 9px;border-radius:999px;}
.contactos-social{display:flex;gap:12px;margin-top:28px;}
.social-pill{
  display:flex;align-items:center;gap:8px;border:1.5px solid rgba(251,244,228,0.3);
  padding:9px 18px;border-radius:999px;font-size:13.5px;font-weight:500;
}
.social-pill:hover{background:rgba(251,244,228,0.1);}
.map-placeholder{
  aspect-ratio:1/1;background:
    linear-gradient(rgba(207,157,69,0.15) 1px, transparent 1px) 0 0/28px 28px,
    linear-gradient(90deg, rgba(207,157,69,0.15) 1px, transparent 1px) 0 0/28px 28px,
    #16302a;
  border:1px solid rgba(251,244,228,0.15);border-radius:var(--radius-lg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  color:rgba(251,244,228,0.55);font-size:13px;
}

/* ================= FOOTER ================= */
.site-footer{background:var(--verde-900);color:rgba(251,244,228,0.55);padding:32px 0;border-top:1px solid rgba(251,244,228,0.08);}
.footer-inner{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;flex-wrap:wrap;gap:14px;}
.footer-admin-link{color:rgba(251,244,228,0.3);font-size:11px;text-decoration:none;}
.footer-admin-link:hover{color:rgba(251,244,228,0.6);}

/* ================================================================ */
/* =====================  PAINEL DO RESTAURANTE  =================== */
/* ================================================================ */
.painel-shell{display:flex;min-height:100vh;background:var(--creme-100);}
.painel-sidebar{
  width:238px;flex-shrink:0;background:var(--verde-900);color:var(--creme-100);
  display:flex;flex-direction:column;padding:26px 18px;gap:30px;position:sticky;top:var(--switch-bar-h, 42px);height:calc(100vh - var(--switch-bar-h, 42px));
}
.painel-brand{display:flex;align-items:center;gap:12px;padding:0 6px;}
.painel-logo{width:38px;height:38px;border-radius:50%;flex-shrink:0;}
.painel-brand strong{display:block;font-family:'Fraunces',serif;font-size:14px;}
.painel-brand span{font-size:11.5px;color:rgba(251,244,228,0.55);}
.painel-nav{display:flex;flex-direction:column;gap:4px;flex:1;}
.p-nav-btn{
  display:flex;align-items:center;gap:11px;background:transparent;border:none;
  color:rgba(251,244,228,0.68);font-size:13.5px;font-weight:500;
  padding:11px 12px;border-radius:10px;text-align:left;width:100%;
  transition:all .15s ease;
}
.p-nav-btn:hover{background:rgba(251,244,228,0.06);color:var(--branco);}
.p-nav-btn.active{background:var(--creme-100);color:var(--verde-900);font-weight:600;}
.p-nav-btn .icon{flex-shrink:0;}
.painel-back{
  display:flex;align-items:center;gap:9px;font-size:12.5px;color:rgba(251,244,228,0.55);
  padding:10px 12px;border-top:1px solid rgba(251,244,228,0.1);
}
.painel-back:hover{color:var(--branco);}
.painel-logout{border-top:none;}
.painel-logout:hover{color:#e2a08a;}

.painel-main{flex:1;padding:40px 46px;max-width:1180px;}
.p-tab{display:none;}
.p-tab.active{display:block;}
.p-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:30px;}
.p-header h2{font-size:26px;}
.p-subtitle{color:var(--cinza-600);font-size:14px;margin-top:6px;}

.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:34px;}
.stat-card{
  background:var(--branco);border:1px solid var(--creme-300);border-radius:var(--radius-md);
  padding:20px 22px;box-shadow:0 6px 16px -10px rgba(15,33,25,0.15);
}
.stat-label{display:block;font-size:12.5px;color:var(--cinza-600);font-weight:600;margin-bottom:10px;}
.stat-value{font-family:'Fraunces',serif;font-size:32px;color:var(--verde-800);}

.p-columns{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:22px;align-items:start;}
.p-card{
  background:var(--branco);border:1px solid var(--creme-300);border-radius:var(--radius-md);
  padding:24px 26px;box-shadow:0 6px 16px -10px rgba(15,33,25,0.12);margin-bottom:22px;
}
.p-card-title{font-size:16px;margin-bottom:18px;color:var(--verde-800);}

.reserva-rows{display:flex;flex-direction:column;gap:2px;}
.reserva-row{
  display:grid;grid-template-columns:70px 1fr auto auto;gap:14px;align-items:center;
  padding:12px 10px;border-bottom:1px solid var(--creme-200);font-size:14px;
}
.reserva-rows-lg .reserva-row{grid-template-columns:70px 1fr auto auto auto;}
.reserva-row:last-child{border-bottom:none;}
.reserva-row .r-hora{font-weight:700;color:var(--verde-800);font-family:'Fraunces',serif;}
.reserva-row .r-nome{font-weight:500;}
.reserva-row .r-pax{color:var(--cinza-600);font-size:13px;white-space:nowrap;}
.reserva-row .r-sala{
  background:var(--creme-200);color:var(--verde-800);font-size:12px;font-weight:600;
  padding:4px 11px;border-radius:999px;white-space:nowrap;
}
.reserva-row .r-novo{
  background:var(--terracota-500);color:var(--branco);font-size:11px;font-weight:700;
  padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:0.04em;
}

.grupo-kitchen-card{background:var(--creme-200);border-radius:var(--radius-sm);padding:18px 20px;}
.grupo-kitchen-card-lg{padding:22px 24px;}
.gk-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.gk-top strong{font-size:15.5px;}
.gk-badge{background:var(--verde-800);color:var(--creme-100);font-size:11.5px;font-weight:600;padding:4px 11px;border-radius:999px;}
.gk-detail{font-size:13.5px;color:var(--carvao-700);margin-bottom:14px;}
.gk-meta{font-size:12.5px;color:var(--cinza-600);margin-bottom:14px;}

.menudia-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start;}

.grupomenu-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;margin-bottom:22px;}
.grupomenu-editor-title{font-size:14.5px;color:var(--verde-800);margin-bottom:16px;}
.grupomenu-preco-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:6px;}

.semana-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px;}
.semana-card{
  background:var(--creme-100);border:1px solid var(--creme-300);border-radius:var(--radius-sm);
  padding:16px 18px;display:flex;flex-direction:column;
}
.semana-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;}
.semana-card-top strong{font-size:14.5px;font-family:'Fraunces',serif;color:var(--verde-800);}
.semana-badge{
  background:var(--dourado-500);color:var(--verde-900);font-size:10.5px;font-weight:700;
  padding:3px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:0.03em;white-space:nowrap;
}
.md-label-sm{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:600;color:var(--carvao-700);margin-bottom:10px;}
.md-label-sm input{
  font-family:inherit;font-size:13px;font-weight:400;color:var(--carvao-900);
  border:1.5px solid var(--creme-300);border-radius:7px;padding:8px 10px;background:var(--branco);
}
.semana-usar-btn{margin-top:4px;align-self:stretch;justify-content:center;}
.semana-especial{background:#fbf1de;border-color:var(--dourado-500);border-width:1.5px;}
.semana-fechado{background:transparent;border-style:dashed;align-items:center;justify-content:center;text-align:center;color:var(--cinza-600);}
.semana-fechado-nota{font-size:12.5px;color:var(--cinza-600);margin-top:6px;}

.costume-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.costume-input{
  font-family:inherit;font-size:13.5px;color:var(--carvao-900);
  border:1.5px solid var(--creme-300);border-radius:7px;padding:9px 12px;background:var(--creme-100);
}
.costume-preco-nota{font-size:12.5px;color:var(--cinza-600);margin-top:12px;font-style:italic;}

.ementa-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.ementa-cat{
  background:var(--creme-100);border:1px solid var(--creme-300);border-radius:var(--radius-sm);
  padding:18px 20px;display:flex;flex-direction:column;
}
.ementa-cat-top{display:flex;align-items:center;gap:8px;margin-bottom:14px;}
.ementa-cat-nome{
  flex:1;min-width:0;font-family:'Fraunces',serif;font-weight:600;font-size:16px;color:var(--verde-800);
  border:1.5px solid transparent;border-radius:7px;padding:6px 9px;background:transparent;
}
.ementa-cat-nome:hover, .ementa-cat-nome:focus{border-color:var(--creme-300);background:var(--branco);outline:none;}
.ementa-remove-cat{
  background:transparent;border:none;color:var(--cinza-600);width:30px;height:30px;flex-shrink:0;
  border-radius:7px;display:flex;align-items:center;justify-content:center;
}
.ementa-remove-cat:hover{background:#f4dede;color:#a13a3a;}
.ementa-remove-cat .icon{width:16px;height:16px;}
.ementa-items{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.ementa-item-row{display:grid;grid-template-columns:1fr 90px auto;gap:8px;align-items:center;}
.ementa-item-nome, .ementa-item-preco{
  font-family:inherit;font-size:13px;color:var(--carvao-900);
  border:1.5px solid var(--creme-300);border-radius:7px;padding:8px 10px;background:var(--branco);
  min-width:0;
}
.ementa-remove-item{
  background:transparent;border:none;color:var(--cinza-600);width:28px;height:28px;flex-shrink:0;
  border-radius:7px;font-size:17px;line-height:1;display:flex;align-items:center;justify-content:center;
}
.ementa-remove-item:hover{background:#f4dede;color:#a13a3a;}
.ementa-add-item{align-self:flex-start;}
.ementa-editor-actions{display:flex;justify-content:space-between;gap:12px;margin-top:20px;flex-wrap:wrap;}
.hoje-costume-nota{font-size:12.5px;color:var(--cinza-600);line-height:1.6;margin:2px 0 18px;padding:10px 14px;background:var(--creme-200);border-radius:8px;}
.story-especial-text{font-weight:700 !important;color:var(--terracota-500) !important;font-size:13px !important;}
.md-label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--carvao-700);margin-bottom:14px;}
.md-label input, .md-label textarea{
  font-family:inherit;font-size:14px;font-weight:400;color:var(--carvao-900);
  border:1.5px solid var(--creme-300);border-radius:var(--radius-sm);padding:10px 12px;
  background:var(--creme-100);
}
.md-label textarea{resize:vertical;}
.md-actions{display:flex;gap:10px;margin-top:6px;}

.story-preview-card{display:flex;flex-direction:column;align-items:center;}
.story-frame{
  width:100%;max-width:230px;aspect-ratio:9/16;border-radius:20px;overflow:hidden;
  background:linear-gradient(160deg,#fbf4e4,#f0e2c4);
  border:6px solid var(--verde-900);box-shadow:var(--sombra);position:relative;
}
.story-inner{
  position:absolute;inset:0;padding:18px 15px;display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:5px;
  background-image:
    linear-gradient(rgba(90,100,70,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(90,100,70,0.06) 1px, transparent 1px);
  background-size:14px 14px;
}
.story-logo{width:44px;height:44px;border-radius:50%;margin-bottom:1px;}
.story-title{font-size:17px;color:var(--verde-800);}
.story-day-badge{
  background:var(--dourado-500);color:var(--verde-900);font-size:10px;font-weight:700;
  padding:3px 11px;border-radius:999px;margin-bottom:3px;
}
.story-section{margin-top:2px;}
.story-section-label{display:block;font-family:'Fraunces',serif;font-weight:600;font-size:11px;color:var(--verde-800);margin-bottom:2px;}
.story-section p{font-size:10.5px;color:var(--carvao-700);line-height:1.35;}
.story-section ul{list-style:none;margin:0;padding:0;font-size:11px;color:var(--carvao-700);line-height:1.6;}
.story-costume-text{font-size:9.5px !important;color:var(--carvao-700);line-height:1.4 !important;padding:0 4px;}
.story-price{
  margin-top:4px;background:var(--verde-800);color:var(--creme-100);font-weight:700;font-size:12px;
  padding:4px 14px;border-radius:999px;
}
.story-sign{margin-top:auto;padding-top:4px;font-size:16px;color:var(--terracota-500);}

.historico-list{display:flex;flex-direction:column;gap:2px;}
.historico-row{
  display:flex;justify-content:space-between;align-items:center;padding:12px 10px;
  border-bottom:1px solid var(--creme-200);font-size:13.5px;
}
.historico-row:last-child{border-bottom:none;}
.historico-row .h-status{
  font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:0.03em;
}
.h-status.publicado{background:#e9f2e8;color:#2e7d46;}
.h-status.agendado{background:#fbeed9;color:var(--dourado-600);}

/* ================= RESPONSIVE ================= */
@media (max-width: 980px){
  .nav-links{display:none;}
  .nav-cta{display:none;}
  .mobile-menu-btn{display:flex;}
  .brand{padding-left:66px;}
  .brand-logo{width:58px;height:58px;transform:translateY(-50%);border-width:2px;box-shadow:0 6px 14px -4px rgba(0,0,0,0.4);}
  .hero-title{font-size:38px;}
  .menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .reservas-grid{grid-template-columns:minmax(0,1fr);}
  .grupos-menus{grid-template-columns:minmax(0,1fr);}
  .grupos-flow{grid-template-columns:repeat(2,minmax(0,1fr));}
  .galeria-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .contactos-grid{grid-template-columns:minmax(0,1fr);}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .p-columns{grid-template-columns:minmax(0,1fr);}
  .menudia-grid{grid-template-columns:minmax(0,1fr);}
  .semana-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ementa-editor{grid-template-columns:minmax(0,1fr);}
  .semana-site-row{grid-template-columns:100px 1fr auto;padding:12px 16px;font-size:13px;}
  .painel-shell{flex-direction:column;}
  .painel-sidebar{width:100%;height:auto;position:relative;top:0;flex-direction:column;align-items:stretch;gap:16px;}
  .painel-nav{flex-direction:row;flex-wrap:wrap;gap:8px;}
  .p-nav-btn{width:auto;flex:1 1 auto;justify-content:center;}
  .painel-back{border-top:none;justify-content:center;}
  .painel-main{padding:26px 20px;}
}

@media (max-width: 600px){
  .form-row{grid-template-columns:minmax(0,1fr);}
  .grupomenu-editor-grid{grid-template-columns:minmax(0,1fr);}
  .grupomenu-preco-row{grid-template-columns:minmax(0,1fr);}
  .menu-grid{grid-template-columns:minmax(0,1fr);}
  .grupos-flow{grid-template-columns:minmax(0,1fr);}
  .galeria-grid{grid-template-columns:minmax(0,1fr);}
  .stat-grid{grid-template-columns:minmax(0,1fr);}
  .semana-grid{grid-template-columns:minmax(0,1fr);}
  .costume-grid{grid-template-columns:minmax(0,1fr);}
  .ementa-item-row{grid-template-columns:1fr 70px auto;}
  .ementa-editor-actions{flex-direction:column-reverse;}
  .ementa-editor-actions .btn{width:100%;justify-content:center;}
  .ementa-cat{padding:16px;}
  .ementa-item-row{grid-template-columns:1fr 64px auto;gap:6px;}
  .semana-site-row{grid-template-columns:1fr;gap:4px;text-align:left;}
  .semana-site-row .ss-preco{margin-top:2px;}
  .gk-top{flex-wrap:wrap;gap:8px;}
  .gk-badge{white-space:normal;}
  .grupo-kitchen-card .btn, .grupo-kitchen-card-lg .btn{
    white-space:normal;text-align:center;width:100%;
  }
  .md-actions{flex-wrap:wrap;}
  .md-actions .btn{flex:1 1 auto;justify-content:center;}
}

@media (max-width: 400px){
  .reserva-row{gap:6px;font-size:13px;}
  .reserva-row .r-sala{padding:4px 8px;font-size:11px;}
  .reserva-row .r-pax{font-size:12px;}
}

/* ================= PAINEL GATE (acesso ao painel) ================= */
.painel-gate{
  display:none;position:fixed;inset:0;z-index:10001;
  background:rgba(15,33,25,0.72);backdrop-filter:blur(3px);
  align-items:center;justify-content:center;padding:20px;
}
.painel-gate.open{display:flex;}
.painel-gate-box{
  background:var(--branco);border-radius:var(--radius-lg);
  padding:36px 32px;max-width:340px;width:100%;text-align:center;
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.5);
}
.painel-gate-logo{width:56px;height:56px;border-radius:50%;margin:0 auto 14px;}
.painel-gate-box h3{font-size:20px;margin-bottom:6px;}
.painel-gate-box p{font-size:13.5px;color:var(--cinza-600);margin-bottom:18px;}
#painel-gate-form{display:flex;flex-direction:column;gap:10px;}
#painel-gate-input{
  font-family:inherit;font-size:14.5px;text-align:center;
  border:1.5px solid var(--creme-300);border-radius:var(--radius-sm);
  padding:11px 13px;background:var(--creme-100);
}
#painel-gate-input:focus{outline:2px solid var(--dourado-500);outline-offset:1px;}
#painel-gate-form .btn{justify-content:center;}
.painel-gate-erro{color:#a13a3a;font-size:12.5px;margin-top:12px;}
.painel-gate-fechar{
  background:transparent;border:none;color:var(--cinza-600);
  font-size:12.5px;margin-top:14px;text-decoration:underline;
}
.painel-gate-fechar:hover{color:var(--carvao-900);}
.painel-gate-box.shake{animation:painel-gate-shake .35s;}
@keyframes painel-gate-shake{
  0%,100%{transform:translateX(0);}
  25%{transform:translateX(-8px);}
  75%{transform:translateX(8px);}
}
