@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800&family=Archivo+Black&display=swap');

:root{
  /* ===== Cores oficiais da logo Manga Bar ===== */
  --bg:#E997B7;          /* rosa chiclete da logo */
  --panel:#FFF6EC;       /* creme */
  --panel2:#FFF6EC;
  --accent:#C81D64;      /* rosa forte (texto/destaque) */
  --accent2:#0B4E36;     /* verde profundo */
  --green-stripe:#0B4E36;
  --text:#0B4E36;
  --ink:#0B4E36;
  --muted:#4E7A63;
  --danger:#C81D64;
  --ok:#2FB56E;
  --border:#0B4E36;
  --line:#0B4E36;
  --hard:#0B4E36;        /* sombra dura (sticker) */
  --star:#F9C623;        /* estrela amarela */
  --on-star:#0B4E36;
  --tick-bg:#0B4E36;
  --tick-tx:#E997B7;

  --cal-cream:#FFF6EC;
  --cal-cream-empty:#F3E7D7;
  --cal-green:#0B4E36;
  --cal-green-text:#0B4E36;
  --cal-pink:#E997B7;
  --cal-gold:#F9C623;

  --round:"Arial Rounded MT Bold", ui-rounded, "SF Pro Rounded", "Trebuchet MS", sans-serif;
}
/* Tema escuro (só nas páginas públicas, body.pub): a forma verde da logo */
@media (prefers-color-scheme: dark){
  body.pub{
    --bg:#0B4E36;
    --panel:#093F2C;
    --panel2:#093F2C;
    --accent:#FF9EC9;
    --text:#F5C6D9;
    --ink:#F5C6D9;
    --muted:#9FC6B2;
    --border:#E997B7;
    --line:#E997B7;
    --hard:#062E1F;
    --tick-bg:#E997B7;
    --tick-tx:#0B4E36;
    --cal-cream:#093F2C;
    --cal-cream-empty:#073524;
    --cal-green-text:#8FD9AF;
    --danger:#FF9EC9;
  }
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
  padding-bottom:60px;
}
header{
  padding:24px 20px 14px;
  text-align:center;
  position:relative;
  z-index:2;
}
header h1{
  margin:0;
  font-size:2rem;
  letter-spacing:1px;
  color:var(--ink);
  font-family:var(--round);
}
header p{
  margin:6px 0 0;
  color:var(--muted);
  font-size:0.95rem;
}

/* ===== Vitrine: letreiro, logo, estrelas, pills ===== */
.ticker{
  background:var(--tick-bg);
  color:var(--tick-tx);
  overflow:hidden;
  white-space:nowrap;
  padding:10px 0;
  font-family:var(--round);
  font-size:13px;
  letter-spacing:.18em;
  text-transform:uppercase;
  position:relative;
  z-index:5;
}
.ticker-track{display:inline-block;animation:marquee 24s linear infinite;}
.ticker-track span{padding:0 16px;}
.ticker-track .sep{color:var(--star);}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

.logo-img{
  width:min(88%,360px);
  height:auto;
  display:none;
  margin:0 auto;
  clip-path:inset(1.5%);
  animation:plop .9s cubic-bezier(.2,.9,.3,1.15) backwards;
}
.logo-rosa{display:block;}
.logo-verde{display:none;}
@media (prefers-color-scheme: dark){
  body.pub .logo-rosa{display:none;}
  body.pub .logo-verde{display:block;}
}
@keyframes plop{from{transform:scale(.7) rotate(-4deg);opacity:0;}}
@keyframes rise{from{transform:translateY(14px);opacity:0;}}

.tagline{
  font-family:var(--round);
  font-size:clamp(15px,4.2vw,18px);
  color:var(--ink);
  margin:4px 0 0;
  animation:rise .7s .25s cubic-bezier(.2,.9,.2,1) backwards;
}
.tagline .star{color:var(--star);text-shadow:1px 1px 0 rgba(0,0,0,.4);}
.tagline .w-verde{font-style:normal;color:var(--accent2);}
.tagline .w-rosa{font-style:normal;color:var(--accent);}
@media (prefers-color-scheme: dark){
  body.pub .tagline .w-verde{color:#8FD9AF;}
}

.spark{
  position:absolute;
  color:var(--star);
  pointer-events:none;
  animation:twinkle 3.4s ease-in-out infinite;
  filter:drop-shadow(1px 2px 0 rgba(0,0,0,.55));
  z-index:1;
}
.spark svg{display:block;width:100%;height:100%;}
@keyframes twinkle{
  0%,100%{transform:scale(1) rotate(0deg);opacity:1;}
  50%{transform:scale(.72) rotate(18deg);opacity:.75;}
}

/* pill sticker (status/ao vivo) */
.pill-sticker{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--round);
  font-size:13px;letter-spacing:.04em;
  padding:9px 18px;border-radius:999px;
  background:var(--panel);color:var(--ink);
  border:2.5px solid var(--line);
  box-shadow:3px 3px 0 var(--hard);
}
.toolbar{
  max-width:900px;
  margin:20px auto 0;
  padding:0 16px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  align-items:center;
}
button{
  font-family:inherit;
  cursor:pointer;
  border:none;
  border-radius:8px;
  padding:10px 16px;
  font-size:0.9rem;
  font-weight:600;
  transition:transform .1s ease, filter .15s ease;
}
button:active{transform:scale(0.97);}
.btn-primary{background:var(--accent);color:#fff;}
.btn-primary:hover{filter:brightness(1.1);}
.btn-secondary{background:var(--panel2);color:var(--text);border:1px solid var(--border);}
.btn-secondary:hover{background:#ffe0f0;}
.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger);}
.btn-danger:hover{background:rgba(209,53,92,0.08);}
.btn-small{padding:6px 10px;font-size:0.78rem;}

main{max-width:900px;margin:0 auto;padding:20px 16px;}

.banner{
  background:rgba(26,156,92,0.1);
  border:1px solid var(--ok);
  color:#0a5c34;
  padding:10px 14px;
  border-radius:8px;
  margin-bottom:16px;
  font-size:0.88rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.banner.warn{
  background:rgba(236,42,141,0.08);
  border-color:var(--accent);
  color:#a3115f;
}

.fb-status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:0.78rem;
  color:var(--muted);
  padding:6px 10px;
  border:1px solid var(--border);
  border-radius:20px;
  background:var(--panel2);
}
.fb-status.pill-sticker{
  font-family:var(--round);
  font-size:13px;
  color:var(--ink);
  padding:9px 18px;
  border:2.5px solid var(--line);
  border-radius:999px;
  background:var(--panel);
  box-shadow:3px 3px 0 var(--hard);
  animation:rise .7s .35s cubic-bezier(.2,.9,.2,1) backwards;
}
.fb-status .dot{
  width:9px;height:9px;border-radius:50%;
  background:var(--muted);
  flex-shrink:0;
}
.fb-status.online .dot{background:var(--ok);animation:pulse 2s ease-out infinite;}
.fb-status.offline .dot{background:var(--danger);}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 var(--ok);}
  70%{box-shadow:0 0 0 8px transparent;}
  100%{box-shadow:0 0 0 0 transparent;}
}

/* posições das estrelinhas soltas */
body.pub{position:relative;overflow-x:hidden;}
.s1{top:110px;left:5%;width:26px;height:26px;}
.s2{top:240px;right:4%;width:34px;height:34px;animation-delay:1.1s;}
.s3{top:560px;left:3%;width:20px;height:20px;animation-delay:2s;}
.s4{top:820px;right:6%;width:24px;height:24px;animation-delay:.6s;}

.login-gate{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.login-card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:14px;
  padding:32px 28px;
  width:100%;
  max-width:340px;
  text-align:center;
  box-shadow:0 8px 30px rgba(236,42,141,0.12);
}
.login-card h1{
  margin:0 0 6px;
  font-size:1.5rem;
  color:var(--accent);
}
.login-card p{
  margin:0 0 20px;
  color:var(--muted);
  font-size:0.88rem;
}
.login-card input{
  width:100%;
  margin-bottom:10px;
}
.login-card .btn-primary{
  width:100%;
  margin-top:4px;
}
.login-error{
  margin-top:12px;
  color:var(--danger);
  font-size:0.82rem;
}

.pw-wrap{
  position:relative;
  margin-bottom:10px;
}
.pw-wrap input{
  width:100%;
  margin-bottom:0;
  padding-right:42px;
}
.pw-toggle{
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  background:transparent;
  border:none;
  padding:4px 6px;
  font-size:1rem;
  cursor:pointer;
  opacity:.7;
  line-height:1;
}
.pw-toggle:hover{opacity:1;}
.pw-toggle.revealed{opacity:1;}
.modal-card .pw-wrap input{margin-bottom:0;}

.link-btn{
  background:transparent;
  border:none;
  color:var(--accent);
  font-size:0.82rem;
  cursor:pointer;
  padding:8px 4px 0;
  text-decoration:underline;
  display:block;
  margin:6px auto 0;
}
.link-btn:hover{filter:brightness(1.1);}

.cal-wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
  margin-bottom:22px;
}

.cal-rings{
  width:100%;
  max-width:660px;
  display:flex;
  justify-content:center;
  gap:18px;
  margin-bottom:-14px;
  z-index:6;
  position:relative;
}
.cal-ring{
  width:11px;
  height:30px;
  border-radius:7px;
  background:linear-gradient(180deg,#efefef 0%,#a7a7a7 42%,#7f7f7f 60%,#c6c6c6 100%);
  box-shadow:0 1px 2px rgba(0,0,0,.28);
  flex-shrink:0;
}

.cal-frame{
  width:100%;
  max-width:660px;
  background:#ffffff;
  border-radius:12px;
  padding:12px 12px 14px;
  box-shadow:0 26px 50px -18px rgba(40,55,40,.35), 0 3px 8px rgba(0,0,0,.08);
}
.cal-frame-inner{
  border-radius:8px;
  overflow:hidden;
}

.cal-illustration{
  position:relative;
  height:400px;
  background:var(--cal-green);
  overflow:hidden;
}
.cal-dots{
  position:absolute;
  inset:0;
  background-image:radial-gradient(rgba(247,240,226,.10) 2px, transparent 2.5px);
  background-size:26px 26px;
}
.cal-sash{
  position:absolute;
  left:-140px;
  top:224px;
  width:1000px;
  height:112px;
  background:var(--cal-pink);
  transform:rotate(-25deg);
  transform-origin:left center;
}
.cal-sash-line{
  position:absolute;
  left:-140px;
  top:198px;
  width:1000px;
  height:8px;
  background:var(--cal-cream);
  transform:rotate(-25deg);
  transform-origin:left center;
  opacity:.9;
}
.cal-illust-month{
  position:absolute;
  inset:0;
  z-index:2;
}
.cal-wordmark{
  position:absolute;
  top:18px;
  left:20px;
  z-index:3;
}
.cal-wordmark-row{
  display:flex;
  align-items:center;
  gap:9px;
}
.cal-wordmark-text{
  font-family:'Archivo Black', sans-serif;
  font-size:19px;
  letter-spacing:1px;
  color:#FFF6EC; /* sempre creme: a arte é sempre verde+rosa */
}
.cal-wordmark-tagline{
  margin-top:5px;
  margin-left:26px;
  font:700 10px/1 'Archivo', sans-serif;
  letter-spacing:2.5px;
  color:var(--cal-pink);
}
.cal-month-display{
  position:absolute;
  left:22px;
  bottom:16px;
  z-index:4;
}
.cal-month-year{
  font:700 15px/1 'Archivo', sans-serif;
  letter-spacing:2px;
  color:#f7c9dd;
  margin-bottom:3px;
}
.spotlight-month{
  margin:0;
  font-family:'Archivo Black', sans-serif;
  font-size:60px;
  line-height:.86;
  letter-spacing:-1px;
  color:#FFF6EC; /* sempre creme sobre a arte */
  text-shadow:0 3px 12px rgba(0,0,0,.22);
  text-transform:capitalize;
}
.spotlight-year{display:none;}
.cal-credit{
  position:absolute;
  right:14px;
  bottom:12px;
  z-index:4;
  font:700 9px/1 'Archivo', sans-serif;
  letter-spacing:1.2px;
  color:rgba(247,240,226,.8);
}

.mango-icon{
  display:inline-block;
  border-radius:56% 56% 50% 50% / 64% 64% 42% 42%;
  background:linear-gradient(150deg,#ef6aa0,#f4b64f 55%,#4f9a3e);
  transform:rotate(-10deg);
}

.calendar-hint{
  margin:0 0 8px;
  font-size:0.78rem;
  color:var(--muted);
  text-align:center;
  max-width:660px;
}
.calendar-weekdays{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  background:var(--cal-pink);
}
.calendar-weekdays span{
  cursor:pointer;
  padding:9px 2px;
  text-align:center;
  font:700 12px/1 'Archivo', sans-serif;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:#fff6ef;
  transition:background .12s ease;
}
.calendar-weekdays span:hover{
  background:rgba(255,255,255,0.2);
}

.cal-nav-controls{
  display:flex;
  align-items:center;
  gap:20px;
}
.cal-nav-btn{
  width:46px;
  height:46px;
  border-radius:50%;
  background:#fff;
  border:none;
  box-shadow:0 6px 14px -4px rgba(40,55,40,.35);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:var(--cal-green);
  font-size:22px;
  font-weight:700;
}
.cal-nav-btn:hover{background:#f2fbf5;}
#calendarTitle{
  min-width:180px;
  text-align:center;
  font-family:'Archivo Black', sans-serif;
  font-size:1.15rem;
  letter-spacing:.5px;
  color:var(--cal-green);
  text-transform:capitalize;
}

@media (max-width:640px){
  .cal-illustration{height:290px;}
  .cal-illust-month{transform:scale(0.6);transform-origin:top right;}
  .spotlight-month{font-size:38px;}
  .cal-wordmark-text{font-size:15px;}
  .cal-rings{gap:10px;}
}

.filter-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-bottom:16px;
  font-size:0.85rem;
  color:var(--muted);
}
.filter-bar select{
  padding:6px 10px;
  font-size:0.85rem;
}

.modal-overlay{
  position:fixed;
  inset:0;
  background:rgba(43,27,34,0.45);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:100;
  padding:20px;
}
.modal-card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:14px;
  padding:24px;
  width:100%;
  max-width:380px;
  box-shadow:0 12px 40px rgba(43,27,34,0.2);
}
.modal-card h3{
  margin:0 0 16px;
  color:var(--accent);
  font-size:1.05rem;
}
.modal-card input{
  width:100%;
  margin-bottom:10px;
}
.wm-freq{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:6px 0 18px;
  font-size:0.85rem;
  color:var(--text);
}
.wm-freq label{
  display:flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
}
.wm-horizon{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:0.85rem;
  color:var(--muted);
  margin-bottom:18px;
}
.wm-horizon input{
  width:64px;
  margin-bottom:0;
}
.wm-horizon select{
  margin-bottom:0;
  padding:6px 8px;
  font-size:0.85rem;
}
.modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
}

.biz-count{
  background:#fff;
  color:var(--accent);
  border-radius:20px;
  font-size:0.72rem;
  font-weight:700;
  padding:1px 7px;
  margin-left:4px;
}
.biz-card{max-width:520px;}
.biz-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:14px;
}
.biz-head h3{margin:0;}
.biz-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height:60vh;
  overflow-y:auto;
}
.biz-empty{
  text-align:center;
  color:var(--muted);
  padding:30px 10px;
  font-size:0.9rem;
  line-height:1.5;
}
.biz-item{
  border:0.5px solid var(--border);
  border-radius:10px;
  padding:11px 13px;
  background:var(--panel2);
}
.biz-name{font-size:0.95rem;font-weight:700;color:var(--text);display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
/* Reserva cuja data já passou: vira histórico. Apagada e com borda tracejada
   pra bater o olho e saber que não pede mais nada. */
.biz-item.passou{ opacity:.62; border-style:dashed; background:transparent; }
.biz-rolou{
  font-size:0.62rem; font-weight:800; letter-spacing:.04em;
  border:1px dashed var(--muted); color:var(--muted);
  border-radius:20px; padding:2px 8px; white-space:nowrap;
}
.biz-meta{font-size:0.8rem;color:var(--muted);margin-top:2px;}
.biz-tipo{font-size:0.65rem;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap;}
.biz-tipo.aniv{background:#fbe9f1;color:#a3115f;}
.biz-tipo.mesa{background:#e3f3ea;color:#0d5c34;}
.biz-tipo.conf{background:#fdeecb;color:#8a5410;}
.biz-tipo.evt{background:#efe9f6;color:#4b2e83;}
.biz-obs{font-size:0.8rem;color:var(--text);margin-top:5px;background:#fff6fb;border:0.5px solid var(--border);border-radius:6px;padding:5px 8px;}
.biz-resp{font-style:italic;opacity:.8;}
.biz-status{font-size:0.65rem;font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.3px;}
.biz-status.pend{background:#fdeecb;color:#8a5410;}
.biz-status.ok{background:#e3f3ea;color:#0d5c34;}
.biz-status.no{background:#fbe0e0;color:#a3222f;}

/* SEMÁFORO da reserva — borda esquerda grossa colorida pra bater o olho e saber
   o que ainda te espera. Estas classes vêm DEPOIS de .passou pra a cor vencer. */
.biz-item.st-nova{ border-left:6px solid #C81D64; }      /* 🔔 esperando você responder */
.biz-item.st-falta{ border-left:6px solid #E8850C; }     /* ⏳ falta enviar (confirmação ou pesquisa) */
.biz-item.st-ok{ border-left:6px solid #2FB56E; }        /* ✅ confirmada e avisada */
.biz-item.st-completa{ border-left:6px solid #c2c2b8; }  /* ✓ ciclo completo */
.biz-item.st-recusada{ border-left:6px solid #c2c2b8; }  /* ✕ recusada */
/* reserva que já rolou mas ainda deve a pesquisa NÃO fica apagada — ela pede ação */
.biz-item.passou.st-falta{ opacity:1; }
.biz-estado{font-size:0.65rem;font-weight:800;padding:2px 9px;border-radius:20px;white-space:nowrap;}
/* pisca pra destacar a reserva quando você chega nela pelo "Esperando você" */
@keyframes bizFlash{ 0%,100%{ box-shadow:0 0 0 0 rgba(200,29,100,0);} 25%{ box-shadow:0 0 0 5px rgba(200,29,100,.45);} }
.biz-item.biz-flash{ animation:bizFlash 1s ease 2; }

/* atalho de voltar pro /admin no cabeçalho do painel */
.voltar-admin{ display:inline-block; margin-top:10px; font-family:var(--round,sans-serif);
  font-size:12.5px; font-weight:700; color:var(--ink,#0B4E36); text-decoration:none;
  border:2px dashed rgba(11,78,54,.4); border-radius:999px; padding:6px 15px;
  background:rgba(255,246,236,.65); transition:background .15s ease, border-style .15s ease; }
.voltar-admin:hover{ background:#F9C623; border-style:solid; }
header h1 a, header a h1{ cursor:pointer; }
.biz-item-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;}
.biz-item-actions a, .biz-item-actions button{text-decoration:none;display:inline-flex;align-items:center;}
.biz-ok{background:#0f6e3f;color:#fff;border:none;border-radius:7px;cursor:pointer;}
.biz-no{background:transparent;color:var(--danger);border:1px solid var(--danger);border-radius:7px;cursor:pointer;}
.biz-whats{background:#25d366;color:#fff;border:none;border-radius:7px;}

.fb-avg-badge{background:#fdeecb;color:#8a5410;}
.fb-summary{text-align:center;padding:6px 0 14px;margin-bottom:6px;border-bottom:0.5px solid var(--border);}
.fb-media{font-size:2.4rem;font-weight:800;color:var(--accent);line-height:1;}
.fb-media .fb-star{color:var(--cal-gold);}
.fb-media-sub{font-size:0.8rem;color:var(--muted);margin-top:2px;}
.fb-quote{font-size:0.85rem;margin-top:6px;padding:7px 10px;border-radius:8px;line-height:1.4;}
.fb-quote.fb-good{background:#e3f3ea;color:#0d5c34;}
.fb-quote.fb-improve{background:#fdeecb;color:#8a5410;}
.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:2px;
  background:rgba(15,110,63,.16);
}
.cal-cell{
  position:relative;
  min-height:64px;
  background:var(--cal-cream);
  border:none;
  border-radius:0;
  padding:8px 10px;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:4px;
  transition:filter .12s ease;
}
.cal-cell:hover{filter:brightness(.98);}
.cal-cell.cal-blank{visibility:hidden;cursor:default;background:var(--cal-cream-empty);}
.cal-cell.cal-today .cal-daynum{
  font-weight:800;
  color:#fff;
  background:var(--cal-pink);
  border-radius:50%;
  width:26px;height:26px;
  display:flex;align-items:center;justify-content:center;
}
.cal-cell.cal-has-events{background:var(--cal-cream);}
.cal-cell.cal-has-events::before{
  content:'';
  position:absolute;
  left:10px;
  bottom:8px;
  width:11px;
  height:14px;
  border-radius:56% 56% 50% 50% / 64% 64% 42% 42%;
  background:linear-gradient(150deg,#ef6aa0,#f4b64f 55%,#4f9a3e);
  transform:rotate(-10deg);
}
.cal-daynum{font:600 0.95rem/1 'Archivo', sans-serif;color:var(--cal-green-text);}
.cal-bands{display:flex;flex-direction:column;gap:2px;align-items:flex-end;width:100%;margin-top:auto;}
.cal-band-pill{
  font-size:0.62rem;
  background:var(--accent);
  color:#fff;
  padding:2px 5px;
  border-radius:4px;
  font-weight:600;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}
.cal-band-pill.cal-more{background:rgba(15,110,63,.12);color:var(--cal-green-text);}

.cal-cell.cal-lunch{background:#fdeecb;}
.cal-cell.cal-holiday{background:#fbe2ce;}
.cal-lunch-tag{
  position:absolute;
  left:8px;
  top:8px;
  font-size:0.72rem;
  line-height:1;
}
.cal-holiday-tag{
  position:absolute;
  left:6px;
  bottom:6px;
  right:6px;
  font-size:0.56rem;
  line-height:1.05;
  color:#a3115f;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.2px;
  white-space:normal;
  overflow:hidden;
  max-height:2.2em;
}
@media (max-width:640px){
  .cal-holiday-tag{display:none;}
  .cal-lunch-tag{font-size:0.6rem;left:4px;top:4px;}
}

.calendar-grid.readonly .cal-cell{cursor:default;}
.calendar-grid.readonly .cal-cell:hover{filter:none;}

@media (max-width:640px){
  .cal-cell{min-height:44px;padding:6px;}
  .cal-band-pill{display:none;}
}

.day-card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:14px;
  margin-bottom:18px;
  overflow:hidden;
  transition:outline .2s ease;
  box-shadow:0 4px 14px rgba(236,42,141,0.05);
}
.day-card.flash{outline:3px solid var(--accent);}
.day-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px 16px;
  background:linear-gradient(90deg, rgba(236,42,141,0.08), transparent);
  border-bottom:1px solid var(--border);
  flex-wrap:wrap;
}
.day-header .day-fields{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  flex:1;
}
input, textarea{
  font-family:inherit;
  background:var(--panel2);
  border:1px solid var(--border);
  color:var(--text);
  border-radius:6px;
  padding:8px 10px;
  font-size:0.88rem;
}
input:focus, textarea:focus{outline:1px solid var(--accent);}
input[type="date"]{color-scheme:light;}
.day-label-input{font-weight:700;font-size:1.05rem;min-width:140px;flex:1;}
.day-date-input{width:150px;}

.rec-badge{
  font-size:0.7rem;
  background:var(--panel2);
  color:var(--accent2);
  border:1px solid var(--border);
  padding:3px 8px;
  border-radius:20px;
  font-weight:600;
  white-space:nowrap;
}

.recurrence-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  background:var(--panel2);
  border-bottom:1px solid var(--border);
  font-size:0.82rem;
  color:var(--muted);
}
.recurrence-bar select, .recurrence-bar input{
  padding:6px 8px;
  font-size:0.82rem;
}
.recurrence-bar .rec-horizon{
  display:flex;
  align-items:center;
  gap:6px;
}
.recurrence-bar .rec-horizon-value{width:56px;}

.bands{padding:10px 16px 16px;}
.band-row{
  display:grid;
  grid-template-columns:1.3fr 1.1fr 1.1fr auto;
  gap:8px;
  align-items:center;
  padding:8px 0;
  border-bottom:1px dashed var(--border);
}
.band-row:last-child{border-bottom:none;}
.band-row input{width:100%;}
.band-row .band-name{font-weight:600;}

.horario-cell{
  display:flex;
  align-items:center;
  gap:4px;
}
.horario-cell input{flex:1;min-width:52px;margin-bottom:0;}
.time-preset{
  flex-shrink:0;
  padding:7px 8px;
  font-size:0.85rem;
  line-height:1;
  background:var(--panel2);
  border:1px solid var(--border);
  border-radius:6px;
  cursor:pointer;
}
.time-preset:hover{background:var(--accent);}
.modal-card .horario-cell{margin-bottom:10px;}

.add-band-btn{margin-top:10px;}

/* read-only (client view) variants */
.ro-day-header{font-weight:700;font-size:1.05rem;color:var(--accent);}
.ro-day-header .ro-date{color:var(--muted);font-weight:400;font-size:0.85rem;display:block;margin-top:2px;}
.ro-band-row{
  display:grid;
  grid-template-columns:1.4fr 0.8fr 1.4fr;
  gap:8px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px dashed var(--border);
  font-size:0.9rem;
}
.ro-band-row:last-child{border-bottom:none;}
.ro-band-row .ro-band-name{font-weight:600;}
.ro-band-row .ro-band-contact{color:var(--muted);}
@media (max-width:640px){
  .ro-band-row{grid-template-columns:1fr;gap:2px;padding:12px 0;}
}

.empty-state{
  text-align:center;
  color:var(--muted);
  padding:40px 20px;
  border:1px dashed var(--border);
  border-radius:12px;
}

.toast{
  position:fixed;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  background:var(--accent);
  color:#fff;
  padding:10px 20px;
  border-radius:8px;
  font-weight:600;
  font-size:0.9rem;
  box-shadow:0 4px 16px rgba(43,27,34,0.25);
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(-6px);}

.last-updated{
  text-align:center;
  color:var(--muted);
  font-size:0.78rem;
  margin:-10px 0 20px;
}

@media (max-width:640px){
  .band-row{grid-template-columns:1fr;gap:4px;padding:10px 0;}
  .band-row .del-band{justify-self:end;}
}

@media print{
  body{background:#fff;color:#111;}
  header{border-bottom:2px solid #333;background:none;}
  header h1{color:#111;text-shadow:none;}
  header p{color:#444;}
  .toolbar, .banner, .cal-wrap, .cal-nav-controls, .filter-bar, .modal-overlay, .add-band-btn, .day-remove, .del-band, .day-date-input, .day-label-input, .recurrence-bar, .rec-badge{display:none !important;}
  .day-header{background:none;border-bottom:1px solid #999;}
  .day-header::after{
    content: attr(data-print-label);
    font-weight:700;
    font-size:1.1rem;
  }
  .day-card{border:1px solid #999;break-inside:avoid;}
  .band-row{grid-template-columns:1fr 1fr 1fr;border-bottom:1px solid #ddd;}
  input{background:none;border:none;color:#111;padding:2px 0;}
  .prateleira{display:none !important;}
}

/* ===== Prateleira de bandas (vitrine cliente) ===== */
.prateleira{
  max-width:900px;
  margin:34px auto 40px;
  padding:0 18px;
  position:relative;
  z-index:2;
}
.prateleira-title{
  display:flex; align-items:center; justify-content:center; gap:12px;
  text-align:center;
  color:var(--ink);
  font-family:var(--round);
  font-size:1.05rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  margin:0 0 4px;
}
.prateleira-title::before, .prateleira-title::after{
  content:'✦'; color:var(--star); text-shadow:1px 1px 0 rgba(0,0,0,.4); font-size:1rem; letter-spacing:0;
}
.prateleira-sub{
  text-align:center;
  color:var(--muted);
  font-size:0.9rem;
  font-weight:600;
  margin:0 0 18px;
}
.prateleira-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:14px;
}
.banda-card{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:16px 16px 14px;
  border-radius:15px;
  background:var(--panel);
  border:2.5px solid var(--line);
  box-shadow:3px 3px 0 var(--hard);
  text-decoration:none;
  transition:transform .22s cubic-bezier(.2,.9,.2,1), box-shadow .22s ease;
}
.prateleira-grid .banda-card:nth-child(odd){ transform:rotate(-.6deg); }
.prateleira-grid .banda-card:nth-child(even){ transform:rotate(.6deg); }
a.banda-card:hover{
  transform:rotate(0deg) translate(-2px,-2px);
  box-shadow:6px 6px 0 var(--hard);
}
.banda-card-nome{
  font-family:var(--round);
  font-weight:700;
  color:var(--ink);
  font-size:1.05rem;
  line-height:1.15;
}
.banda-card-ig{
  font-size:0.82rem;
  color:var(--accent);
  font-weight:700;
}

/* Nome de banda clicável dentro da programação */
a.band-link{
  text-decoration:none;
  color:var(--accent);
  border-bottom:2px dashed var(--accent);
  transition:color .12s ease;
}
a.band-link:hover{ color:var(--ink); }
.band-link-ig{ font-size:0.78em; opacity:0.75; }

/* ===== Painel de bandas (editor) ===== */
.bandas-help{ font-size:0.85rem; color:var(--muted); margin:0 0 14px; line-height:1.4; }
.bandas-add{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.bandas-add input{ flex:1; min-width:140px; }
.bandas-sugestoes{ margin-bottom:12px; }
.bandas-sug-label{ font-size:0.78rem; color:var(--muted); margin-bottom:6px; }
.bandas-sug-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.banda-chip{
  background:#fbe9f1; border:1px solid var(--accent); color:#a3115f;
  border-radius:999px; padding:5px 11px; font-size:0.8rem; cursor:pointer;
  transition:background .12s ease;
}
.banda-chip:hover{ background:var(--accent); color:#fff; }
.bandas-list{ display:flex; flex-direction:column; gap:8px; max-height:46vh; overflow-y:auto; }
.bandas-empty{ color:var(--muted); font-size:0.9rem; text-align:center; padding:18px; }
.banda-row{
  display:grid; grid-template-columns:1.1fr 1.1fr .9fr auto; gap:8px; align-items:center;
  padding:8px; border:1px solid var(--border); border-radius:10px; background:var(--panel);
}
.banda-row input{ width:100%; }
.banda-row-actions{ display:flex; align-items:center; gap:8px; }
.banda-preview{ text-decoration:none; font-size:1.1rem; color:var(--accent); }
.banda-preview.off{ color:var(--muted); cursor:default; }
.banda-del{ background:none; border:none; cursor:pointer; font-size:1rem; padding:2px 4px; border-radius:6px; }
.banda-del:hover{ background:#fdecef; }
.banda-datas{
  background:var(--star,#F9C623); border:2px solid var(--line,#0B4E36); border-radius:8px;
  cursor:pointer; font-size:.78rem; font-weight:800; padding:4px 8px; white-space:nowrap; color:#0B4E36;
}
.banda-datas:hover{ transform:translateY(-1px); }
@media (max-width:520px){
  .banda-row{ grid-template-columns:1fr 1fr; }
  .banda-zap-input{ grid-column:1 / -1; }
  .banda-row-actions{ grid-column:1 / -1; justify-content:flex-end; }
}

/* ======================================================================
   Prompt 6+8 — Agenda pública (cliente) + identidade Manga Bar
   ====================================================================== */

/* Header / topo */
.header-sub{ margin:8px 0 0; color:var(--accent2); font-weight:700; font-size:0.9rem; }
.toolbar-center{ justify-content:center; }
.btn-reservar-top{
  display:inline-flex; align-items:center; gap:6px;
  background:var(--accent2); color:#fff; text-decoration:none;
  padding:11px 18px; border-radius:999px; font-weight:700; font-size:0.92rem;
  box-shadow:0 4px 14px rgba(15,110,63,0.25);
}
.btn-reservar-top:hover{ background:#0c5a33; }

/* Empty state */
.empty-state{ text-align:center; padding:30px 18px; }
.empty-msg{ color:var(--ink); font-size:1.02rem; line-height:1.6; margin:0 0 18px; font-weight:600; }
.wa-btn{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--star); color:var(--on-star); text-decoration:none; font-weight:800;
  font-family:var(--round);
  padding:14px 22px; border-radius:999px; font-size:1rem;
  border:2.5px solid var(--line);
  box-shadow:4px 4px 0 var(--hard);
  transition:transform .22s cubic-bezier(.2,.9,.2,1), box-shadow .22s ease;
}
.wa-btn:hover{ transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--hard); }

/* Grupo do dia */
#daysContainer{ max-width:640px; margin:0 auto; padding:0 18px; position:relative; z-index:2; }
.day-group{ margin:0 0 26px; }
.day-group-head{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:0 4px 10px; margin-bottom:14px;
}
.day-group-head::before{ content:'✦'; color:var(--star); text-shadow:1px 1px 0 rgba(0,0,0,.4); font-size:1rem; }
.dg-weekday{
  font-family:var(--round);
  color:var(--ink); font-size:1.08rem; text-transform:capitalize;
  letter-spacing:.02em;
}
.dg-date{ color:var(--accent); font-family:var(--round); font-size:1.08rem; }
.dg-badge{ font-size:0.72rem; font-weight:700; padding:4px 10px; border-radius:999px; border:2px solid var(--line); background:var(--panel); color:var(--ink); }
.dg-lunch{}
.dg-holiday{ background:var(--star); color:var(--on-star); }
.day-shows{ display:flex; flex-direction:column; gap:15px; }

/* Card de show — adesivo colado na parede */
.show-card{
  background:var(--panel);
  border:2.5px solid var(--line);
  border-radius:16px;
  padding:15px 17px;
  box-shadow:4px 4px 0 var(--hard);
  transition:transform .22s cubic-bezier(.2,.9,.2,1), box-shadow .22s ease;
}
.day-shows .show-card:nth-child(odd){ transform:rotate(-.4deg); }
.day-shows .show-card:nth-child(even){ transform:rotate(.4deg); }
.show-card:hover{ transform:rotate(0deg) translate(-2px,-2px); box-shadow:7px 7px 0 var(--hard); }
.show-card.is-cancelled{ opacity:0.6; }
.show-card.is-cancelled .show-nome{ text-decoration:line-through; text-decoration-color:rgba(0,0,0,0.3); }

.show-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.show-status{ font-size:0.7rem; font-weight:800; letter-spacing:.3px; text-transform:uppercase; font-family:var(--round); }
.show-status.st-conf{ color:var(--ok); }
.show-status.st-soon{ color:#B57E12; }
.show-status.st-canc{ color:var(--muted); }
@media (prefers-color-scheme: dark){
  body.pub .show-status.st-soon{ color:var(--star); }
}
.show-time{ font-size:0.92rem; color:var(--ink); font-weight:800; font-family:var(--round); }

.show-nome{
  margin:2px 0 6px; font-family:var(--round);
  font-size:1.3rem; line-height:1.12; color:var(--ink);
}
.show-desc{ margin:0 0 10px; color:var(--muted); font-size:0.92rem; line-height:1.45; font-weight:600; }
.show-img{ margin:0 0 12px; border-radius:12px; overflow:hidden; border:2px solid var(--line); }
.show-img img{ display:block; width:100%; max-height:220px; object-fit:cover; }

.show-actions{ display:flex; gap:10px; flex-wrap:wrap; }
.show-btn{
  flex:1 1 auto; min-width:140px; text-align:center; text-decoration:none;
  padding:12px 16px; border-radius:13px; font-weight:800; font-size:0.95rem;
  font-family:var(--round);
  min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:6px;
  border:2.5px solid var(--line);
  box-shadow:3px 3px 0 var(--hard);
  transition:transform .22s cubic-bezier(.2,.9,.2,1), box-shadow .22s ease;
}
.show-btn:hover{ transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--hard); }
.show-btn.primary{ background:var(--star); color:var(--on-star); }
.show-btn.ghost{ background:var(--panel); color:var(--ink); }

@media (max-width:420px){
  header h1{ font-size:1.7rem; }
  .show-nome{ font-size:1.14rem; }
  .show-btn{ min-width:100%; }
}

/* ======================================================================
   Prompt 7 — Editor: mini-card de cadastro de show
   ====================================================================== */
.band-row{ display:block; grid-template-columns:none; background:var(--panel2); border:1px solid var(--border); border-radius:14px; padding:12px; margin-bottom:10px; border-bottom:1px solid var(--border); }
.band-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.bf{ display:flex; flex-direction:column; gap:4px; }
.bf > span{ font-size:0.74rem; font-weight:700; color:var(--muted); }
.bf-full{ grid-column:1 / -1; }
.band-grid input, .band-grid select{ width:100%; }
.band-grid select.band-status{ padding:9px 10px; border-radius:8px; border:1px solid var(--border); background:#fff; font-family:inherit; }
.band-row .del-band{ margin-top:10px; }
.horario-cell{ display:flex; gap:6px; align-items:center; }
.horario-cell .band-horario{ flex:1; }
input.invalid, select.invalid{ outline:2px solid var(--danger); border-color:var(--danger) !important; background:#fff4f7; }

@media (max-width:520px){
  .band-grid{ grid-template-columns:1fr; }
  .bf-full{ grid-column:auto; }
}

/* ===== Rodapé vitrine ===== */
.foot{ margin:44px auto 0; text-align:center; position:relative; z-index:2; }
.hours{
  display:inline-block;
  font-family:var(--round);
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding:11px 24px;
  border-radius:999px;
  border:2.5px dashed var(--line);
  color:var(--ink);
  transform:rotate(-.6deg);
}
.addr{ margin:14px 0 0; font-size:13px; color:var(--ink); font-weight:600; line-height:1.7; }
.seed{
  display:block;
  margin-top:20px;
  font-family:var(--round);
  font-size:11px;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--ink);
  opacity:.75;
}
.seed .star, .foot .star{ color:var(--star); text-shadow:1px 1px 0 rgba(0,0,0,.4); }

/* ===== Cópias de segurança ===== */
.backup-row{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 12px; border:1px solid var(--border); border-radius:10px; background:var(--panel);
}
.backup-info{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.backup-info b{ font-size:0.92rem; color:var(--ink); }
.backup-info span{ font-size:0.78rem; color:var(--muted); }
.backup-restore{ flex:none; }

/* botão do Instagram do bar (rodapé cliente) */
.ig-btn{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--star); color:var(--on-star); text-decoration:none;
  font-family:var(--round); font-weight:800; font-size:0.95rem;
  padding:13px 22px; border-radius:999px;
  border:2.5px solid var(--line);
  box-shadow:4px 4px 0 var(--hard);
  transition:transform .22s cubic-bezier(.2,.9,.2,1), box-shadow .22s ease;
}
.ig-btn:hover{ transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--hard); }

/* Dashboard do topo do modal de Reservas (soma da semana/mês) */
.dash-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:4px 0 10px; }
.dash-cel{ text-align:center; padding:12px 8px; border:2px solid var(--accent,#0B4E36);
  border-radius:14px; background:var(--panel2,#fff6ec); }
.dash-tit{ font-size:0.7rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.dash-num{ font-weight:900; font-size:2.4rem; line-height:1.05; color:var(--accent,#0B4E36); }
.dash-sub{ font-size:0.75rem; font-weight:700; color:var(--muted); }

/* Aviso de pendências no topo do modal de Reservas (confirmações/pesquisas a enviar) */
.dash-alerta{ background:#fdecef; color:#C81D64; border:2px dashed #C81D64; border-radius:12px;
  padding:9px 12px; font-weight:800; font-size:0.82rem; text-align:center; margin-bottom:8px; }
