:root{
  --charcoal:#201A16;
  --charcoal-2:#2B2320;
  --charcoal-3:#352A24;
  --cream:#F4ECDD;
  --cream-dim:#C9BEAE;
  --tomato:#C1401F;
  --tomato-dark:#8F2E16;
  --basil:#5C7A52;
  --basil-dark:#425939;
  --crust:#D9A441;
  --line:#46372F;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--charcoal);
  color:var(--cream);
  font-family:'Inter',system-ui,sans-serif;
  min-height:100vh;
}
.display{font-family:'Bebas Neue',sans-serif; letter-spacing:0.04em;}

header{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 28px; border-bottom:2px solid var(--line);
  background:linear-gradient(180deg,var(--charcoal-2),var(--charcoal));
  position:sticky; top:0; z-index:100;
  box-shadow:0 4px 16px rgba(0,0,0,.25);
}
.brand{display:flex; align-items:center; gap:12px;}
.brand .mark{
  width:42px;height:42px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--crust), var(--tomato-dark) 70%);
  display:flex;align-items:center;justify-content:center;font-size:20px;
}
.brand h1{font-size:28px; margin:0; line-height:1;}
.brand p{margin:2px 0 0; font-size:11px; color:var(--cream-dim); text-transform:uppercase; letter-spacing:0.12em;}

nav{display:flex; gap:6px; flex-wrap:wrap;}
nav a{
  background:transparent; border:1px solid var(--line); color:var(--cream-dim);
  padding:9px 18px; border-radius:6px; cursor:pointer; font-size:13px; font-weight:600;
  text-decoration:none; transition:all .15s;
}
nav a.active{background:var(--tomato); border-color:var(--tomato); color:#fff;}
nav a:hover:not(.active){border-color:var(--crust); color:var(--cream);}

.nav-toggle{
  display:none; background:transparent; border:1px solid var(--line); color:var(--cream);
  font-size:20px; width:42px; height:42px; border-radius:8px; cursor:pointer; line-height:1;
  flex:none;
}
.nav-toggle:hover{border-color:var(--crust);}

@media (max-width:860px){
  header{flex-wrap:wrap; row-gap:12px;}
  .nav-toggle{display:block;}
  nav{
    display:none; width:100%; flex-direction:column; gap:8px;
    padding-top:12px; border-top:1px solid var(--line);
  }
  nav.open{display:flex;}
  nav a{text-align:center;}
  nav span[style*="width:1px"]{display:none;}
}

.view{padding:22px 28px 40px;}
@media (max-width:480px){
  .view{padding:16px 14px 28px;}
  .card{padding:14px;}
  header{padding:14px 16px;}
  .brand h1{font-size:22px;}
  .brand .mark{width:36px; height:36px; font-size:17px;}
  .hero{padding:40px 18px;}
  .hero-title{font-size:32px;}
  .status-step{width:72px;}
  .status-label{font-size:9px;}
  .cart-card{padding:14px;}
  .modal-box{padding:18px;}
  .receipt{padding:16px 14px 8px;}
}

.layout{display:grid; grid-template-columns:1.5fr 1fr; gap:22px; align-items:start;}
@media (max-width:900px){.layout{grid-template-columns:1fr;}}
/* Itens de grid não encolhem abaixo do conteúdo por padrão (min-width:auto) —
   isso "empurra" a página pra largura maior que a tela em telas pequenas.
   Forçando min-width:0 nos filhos diretos dos grids do site pra evitar isso. */
.layout > *, .kpis > *, .highlights > *, .steps > *, .info-footer > *{min-width:0;}

.card{
  background:var(--charcoal-2); border:1px solid var(--line); border-radius:10px;
  padding:18px; box-shadow:0 6px 18px rgba(0,0,0,.18);
}
.section-title{
  font-size:12px; text-transform:uppercase; letter-spacing:0.14em; color:var(--crust);
  margin:0 0 14px; font-weight:700;
}

.mode-toggle{display:flex; gap:8px; margin-bottom:16px;}
.mode-toggle button{
  flex:1; padding:10px; border-radius:7px; border:1px solid var(--line);
  background:var(--charcoal-3); color:var(--cream-dim); font-weight:600; font-size:13px; cursor:pointer;
}
.mode-toggle button.active{background:var(--basil); border-color:var(--basil); color:#fff;}

.star-rating{display:flex; gap:4px; font-size:30px; margin-bottom:14px; line-height:1;}
.star-rating .star{cursor:pointer; color:var(--cream-dim); transition:transform .1s, color .1s;}
.star-rating .star:hover{transform:scale(1.12);}
.star-rating .star.active{color:var(--crust);}

.search-field{position:relative; margin-bottom:16px;}
.search-field .search-icon{
  position:absolute; left:12px; top:50%; transform:translateY(-50%); font-size:14px; opacity:.6; pointer-events:none;
}
.search-field input{
  width:100%; background:var(--charcoal-3); border:1px solid var(--line); color:var(--cream);
  padding:11px 14px 11px 36px; border-radius:8px; font-size:14px; font-family:inherit;
}
.search-field input:focus{outline:none; border-color:var(--crust);}

.size-toggle{display:flex; align-items:center; gap:8px; margin-bottom:18px;}
.size-label{font-size:12px; color:var(--cream-dim); font-weight:600; margin-right:2px;}
.size-btn{
  padding:8px 18px; border-radius:20px; border:1px solid var(--line);
  background:var(--charcoal-3); color:var(--cream-dim); font-weight:700; font-size:13px; cursor:pointer;
}
.size-btn.active{background:var(--crust); border-color:var(--crust); color:#241A12;}

.category-tabs{display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-bottom:22px;}
.category-tab{
  padding:9px 18px; border-radius:20px; border:1px solid var(--line);
  background:var(--charcoal-2); color:var(--cream-dim); font-weight:700; font-size:13px;
  cursor:pointer; transition:background-color .15s, border-color .15s, color .15s;
}
.category-tab:hover:not(.active){border-color:var(--crust); color:var(--cream);}
.category-tab.active{background:var(--tomato); border-color:var(--tomato); color:#fff;}

.category{margin-bottom:18px;}
.category h3{font-size:14px; color:var(--cream-dim); margin:0 0 8px; font-weight:600;}
.pizza-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,200px)); gap:14px;}
@media (max-width:600px){.pizza-grid{grid-template-columns:repeat(2,1fr); gap:10px;}}
.pizza-item{
  border:1px solid var(--line); border-radius:10px; padding:11px 12px 12px; cursor:pointer;
  background:var(--charcoal-3); transition:border-color .15s, transform .15s, box-shadow .15s;
  box-shadow:0 2px 8px rgba(0,0,0,.12);
  min-width:0;
}
.pizza-item:hover{border-color:var(--tomato); transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.28);}
.pizza-item.picked{border-color:var(--crust); box-shadow:0 0 0 1px var(--crust);}
.pizza-photo{
  width:100%; aspect-ratio:4/3; border-radius:8px; overflow:hidden; margin-bottom:10px;
  background:radial-gradient(circle at 50% 40%, var(--charcoal-3) 0%, var(--charcoal) 100%);
  display:flex; align-items:center; justify-content:center;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.04);
}
.pizza-photo img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s ease;}
.pizza-item:hover .pizza-photo img{transform:scale(1.04);}
.pizza-photo-placeholder{
  font-size:34px;
  background:radial-gradient(circle at 30% 25%, var(--crust) 0%, var(--tomato-dark) 75%);
  opacity:0.85;
}
.pizza-item .name{font-weight:600; font-size:14px;}
.pizza-item .price{color:var(--crust); font-size:13px; margin-top:4px;}

.half-status{
  font-size:12px; color:var(--cream-dim); background:var(--charcoal-3);
  border:1px dashed var(--line); border-radius:6px; padding:8px 10px; margin-bottom:12px;
}

.receipt-wrap{position:sticky; top:20px;}
.receipt{
  background:#F4ECDD; color:#241A12; border-radius:2px;
  padding:20px 18px 10px; position:relative;
  box-shadow:0 12px 30px rgba(0,0,0,.35);
}
.receipt::after{
  content:""; position:absolute; left:0; right:0; bottom:-9px; height:18px;
  background:
    linear-gradient(135deg,#F4ECDD 50%,transparent 50%) 0 0/14px 14px,
    linear-gradient(-135deg,#F4ECDD 50%,transparent 50%) 0 0/14px 14px;
  background-repeat:repeat-x;
}
.receipt h2{font-family:'Bebas Neue'; letter-spacing:.06em; font-size:22px; margin:0 0 2px; text-align:center;}
.receipt .sub{text-align:center; font-size:11px; color:#6b5b47; margin-bottom:12px; text-transform:uppercase; letter-spacing:.1em;}
.receipt hr{border:none; border-top:1px dashed #6b5b47; margin:10px 0;}
.receipt .line{display:flex; justify-content:space-between; font-size:13px; margin-bottom:6px;}
.receipt .line .name{max-width:65%;}
.receipt .empty{text-align:center; color:#8a7a63; font-size:13px; padding:18px 0;}
.receipt .rm{background:none;border:none;color:#a33;cursor:pointer;font-size:12px;padding:0 0 0 6px;}
.receipt .total-row{display:flex; justify-content:space-between; font-weight:700; font-size:16px; margin-top:8px;}

.field{margin-bottom:12px;}
.field label{display:block; font-size:12px; color:var(--cream-dim); margin-bottom:5px; font-weight:600;}
.field select, .field input{
  width:100%; background:var(--charcoal-3); border:1px solid var(--line); color:var(--cream);
  padding:9px 10px; border-radius:6px; font-size:13px; font-family:inherit;
}

.paybtns{display:flex; gap:8px; margin:10px 0;}
.paybtns button{
  flex:1; padding:10px 6px; border-radius:7px; border:1px solid var(--line);
  background:var(--charcoal-3); color:var(--cream-dim); font-weight:600; font-size:12px; cursor:pointer;
}
.paybtns button.active{background:var(--crust); border-color:var(--crust); color:#241A12;}

.finalize{
  width:100%; margin-top:14px; padding:13px; border:none; border-radius:8px;
  background:var(--tomato); color:#fff; font-weight:700; font-size:15px; cursor:pointer;
  letter-spacing:0.02em;
}
.finalize:hover{background:var(--tomato-dark);}
.finalize:disabled{opacity:.4; cursor:not-allowed;}

.kpis{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:22px;}
@media (max-width:700px){.kpis{grid-template-columns:repeat(2,1fr);}}
.kpi{
  background:var(--charcoal-2); border:1px solid var(--line); border-radius:10px; padding:16px;
  box-shadow:0 6px 18px rgba(0,0,0,.18); transition:transform .15s, border-color .15s;
}
.kpi:hover{transform:translateY(-2px); border-color:var(--crust);}
.kpi .label{font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--cream-dim); margin-bottom:6px;}
.kpi .value{font-size:26px; font-weight:700; font-family:'Bebas Neue'; letter-spacing:.03em;}
.kpi.tomato .value{color:var(--tomato);}
.kpi.crust .value{color:var(--crust);}
.kpi.basil .value{color:var(--basil);}

table{width:100%; border-collapse:collapse; font-size:13px;}
th{text-align:left; color:var(--crust); font-weight:700; padding:9px 10px; border-bottom:2px solid var(--line); font-size:11px; text-transform:uppercase; letter-spacing:.06em;}
td{padding:10px; border-bottom:1px solid var(--line);}
tr:last-child td{border-bottom:none;}
tbody tr{transition:background-color .12s;}
tbody tr:hover{background-color:rgba(217,164,65,0.06);}

.empty-state{text-align:center; padding:40px 0; color:var(--cream-dim); font-size:13px;}

/* ---- Botões ---- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:10px 18px; border-radius:7px; border:1px solid transparent;
  font-weight:700; font-size:13px; cursor:pointer; text-decoration:none;
  transition:background-color .15s, border-color .15s, transform .1s, opacity .15s;
  line-height:1.2;
}
.btn:active{transform:translateY(1px);}
.btn:disabled{opacity:.4; cursor:not-allowed; transform:none;}
.btn-block{display:flex; width:100%;}
.btn-sm{padding:6px 12px; font-size:12px; border-radius:6px;}

.btn-primary{background:var(--tomato); color:#fff;}
.btn-primary:hover:not(:disabled){background:var(--tomato-dark);}

.btn-secondary{background:var(--charcoal-3); color:var(--cream); border-color:var(--line);}
.btn-secondary:hover:not(:disabled){border-color:var(--crust); color:var(--crust);}

.btn-success{background:var(--basil); color:#fff;}
.btn-success:hover:not(:disabled){background:var(--basil-dark);}

.btn-danger{background:transparent; color:var(--tomato); border-color:var(--line);}
.btn-danger:hover:not(:disabled){background:rgba(193,64,31,0.12); border-color:var(--tomato);}

.btn-crust{background:var(--crust); color:#241A12;}
.btn-crust:hover:not(:disabled){background:#c79338;}

/* Alias antigo, mantido por compatibilidade */
.close-btn{padding:10px 20px; background:var(--basil); border:none; border-radius:7px; color:#fff; font-weight:700; cursor:pointer; font-size:13px;}
.close-btn:hover{background:var(--basil-dark);}

/* ---- Badges (status/origem) ---- */
.badge{
  display:inline-flex; align-items:center; gap:4px;
  padding:3px 9px; border-radius:20px; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em; white-space:nowrap;
}
.badge-pendente{background:rgba(217,164,65,0.18); color:var(--crust);}
.badge-confirmado{background:rgba(92,122,82,0.2); color:#9DC28E;}
.badge-cancelado{background:rgba(193,64,31,0.18); color:#E58469;}
.badge-origem{background:var(--charcoal-3); color:var(--cream-dim); text-transform:none; letter-spacing:0; font-weight:600;}
.badge-ativo{background:rgba(92,122,82,0.2); color:#9DC28E; text-transform:none; letter-spacing:0;}
.badge-inativo{background:var(--charcoal-3); color:var(--cream-dim); text-transform:none; letter-spacing:0;}
.badge-entrega{background:rgba(217,164,65,0.28); color:#F4E0B0; text-transform:none; letter-spacing:0;}

.row-pendente{background:rgba(217,164,65,0.07);}

/* ---- Gráficos de barra (painel de produtos) ---- */
.chart-bar-row{display:flex; align-items:center; gap:8px; margin-bottom:10px;}
.chart-bar-row:last-child{margin-bottom:0;}
.chart-bar-label{
  width:104px; flex-shrink:0; font-size:12px; color:var(--cream-dim);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.chart-bar-track{flex:1; background:var(--charcoal-3); border-radius:4px; height:14px; overflow:hidden;}
.chart-bar-fill{height:100%; border-radius:0 4px 4px 0; min-width:3px; transition:width .5s ease;}
.chart-bar-fill-crust{background:var(--crust);}
.chart-bar-fill-tomato{background:var(--tomato);}
.chart-bar-value{
  width:26px; flex-shrink:0; text-align:right; font-size:12px; font-weight:700;
  color:var(--cream); font-variant-numeric:tabular-nums;
}

.toast{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%);
  background:var(--basil); color:#fff; padding:10px 18px; border-radius:7px; font-size:13px;
  font-weight:600; opacity:0; transition:opacity .25s; pointer-events:none; z-index:999;
}

/* ---- Modal de confirmação (substitui o confirm() nativo do navegador) ---- */
.modal-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.6);
  display:flex; align-items:center; justify-content:center; padding:20px;
  opacity:0; pointer-events:none; transition:opacity .15s ease; z-index:1000;
}
.modal-overlay.show{opacity:1; pointer-events:auto;}
.modal-box{
  background:var(--charcoal-2); border:1px solid var(--line); border-radius:12px;
  padding:26px; max-width:380px; width:100%;
  box-shadow:0 24px 60px rgba(0,0,0,.5);
  transform:translateY(-8px); transition:transform .15s ease;
}
.modal-overlay.show .modal-box{transform:translateY(0);}
.modal-icon{font-size:26px; margin-bottom:10px;}
.modal-message{margin:0 0 22px; font-size:14px; color:var(--cream); line-height:1.55;}
.modal-actions{display:flex; gap:10px; justify-content:flex-end;}
.toast.show{opacity:1;}

/* ---- Site público (Home / Sobre) ---- */
.hero{
  padding:60px 28px; text-align:center;
  background:radial-gradient(circle at 50% -20%, rgba(217,164,65,0.18), transparent 60%);
  border-bottom:1px solid var(--line);
}
.hero-title{font-size:44px; line-height:1.05; margin:0 0 16px;}
.hero-sub{max-width:520px; margin:0 auto 26px; color:var(--cream-dim); font-size:15px; line-height:1.5;}
.hero-cta{
  display:inline-block; background:var(--tomato); color:#fff; text-decoration:none;
  padding:13px 28px; border-radius:8px; font-weight:700; font-size:14px; letter-spacing:.02em;
}
.hero-cta:hover{background:var(--tomato-dark);}

.open-countdown{
  font-family:'JetBrains Mono',monospace; font-size:26px; font-weight:700;
  color:var(--crust); letter-spacing:.04em; margin:0; font-variant-numeric:tabular-nums;
}
.highlights{display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin-bottom:26px;}
.highlights .highlight{flex:1 1 260px; max-width:340px;}
@media (max-width:800px){.highlights .highlight{flex:1 1 100%; max-width:none;}}
.highlight{text-align:center;}
.highlight-icon{font-size:30px; margin-bottom:8px;}
.highlight h3{margin:0 0 6px; font-size:15px;}
.highlight p{margin:0; font-size:13px; color:var(--cream-dim); line-height:1.5;}

.about-card{margin-bottom:26px;}
.about-text{color:var(--cream-dim); font-size:14px; line-height:1.6; margin:0;}

.pizza-item.read-only{cursor:default;}
.pizza-item.read-only:hover{border-color:var(--line); transform:none;}
.price-list{display:flex; flex-wrap:wrap; gap:8px; margin-top:6px; font-size:12px; color:var(--crust);}

.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:26px;}
@media (max-width:800px){.steps{grid-template-columns:1fr;}}
.step{text-align:center; position:relative;}
.step-number{
  width:32px; height:32px; border-radius:50%; background:var(--crust); color:#241A12;
  display:flex; align-items:center; justify-content:center; font-family:'Bebas Neue';
  font-size:16px; margin:0 auto 10px;
}
.step h3{margin:0 0 6px; font-size:15px;}
.step p{margin:0; font-size:13px; color:var(--cream-dim); line-height:1.5;}

.info-footer{
  border-top:1px solid var(--line); margin-top:20px; padding:30px 28px;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:22px;
}
@media (max-width:700px){.info-footer{grid-template-columns:1fr;}}
.info-footer h4{
  margin:0 0 8px; font-size:11px; text-transform:uppercase; letter-spacing:.1em;
  color:var(--crust); font-weight:700;
}
.info-footer p{margin:0; font-size:13px; color:var(--cream-dim); line-height:1.6;}
.info-footer .tbd{font-style:italic; opacity:.65;}
.info-footer-bottom{
  text-align:center; padding:16px 20px 30px; color:var(--cream-dim); font-size:11px;
  opacity:.7;
}

.site-footer{
  text-align:center; padding:26px 20px 40px; color:var(--cream-dim); font-size:12px;
  border-top:1px solid var(--line); margin-top:20px;
}

.carousel{position:relative; width:100%; aspect-ratio:16/7; background:var(--charcoal-3);}
@media (max-width:700px){.carousel{aspect-ratio:4/3;}}
.carousel-slide{position:absolute; inset:0; opacity:0; transition:opacity .7s ease;}
.carousel-slide.active{opacity:1;}
.carousel-slide img{width:100%; height:100%; object-fit:cover; display:block;}
.carousel-caption{
  position:absolute; left:0; right:0; bottom:0; padding:16px 20px 14px;
  background:linear-gradient(0deg, rgba(0,0,0,.7), transparent);
  color:#fff; font-weight:700; font-size:16px; font-family:'Bebas Neue'; letter-spacing:.03em;
}
.carousel-dots{display:flex; justify-content:center; gap:6px; padding:12px;}
.carousel-dot{
  width:8px; height:8px; border-radius:50%; border:none; background:var(--line);
  cursor:pointer; padding:0;
}
.carousel-dot.active{background:var(--crust);}

.success-icon{
  width:56px; height:56px; border-radius:50%; background:rgba(92,122,82,0.18);
  color:var(--basil); display:flex; align-items:center; justify-content:center;
  font-size:28px; margin:0 auto 14px;
}

.login-error{
  background:rgba(193,64,31,0.15); border:1px solid var(--tomato); color:#F0B7A8;
  padding:10px 12px; border-radius:6px; font-size:13px; margin-bottom:16px; text-align:center;
}

.site-banner{
  background:rgba(217,164,65,0.15); border-bottom:1px solid var(--crust); color:#F4E0B0;
  padding:10px 20px; font-size:13px; text-align:center;
}

/* ---- Cena animada de entrega (painel decorativo em telas com espaço sobrando) ---- */
.moto-scene{
  flex:1 1 380px; min-height:420px; position:relative; overflow:hidden;
  background:var(--charcoal-2); border:1px solid var(--line); border-radius:10px;
  box-shadow:0 6px 18px rgba(0,0,0,.18);
}
.moto-cloud{
  position:absolute; font-size:22px; opacity:.3; color:var(--cream-dim);
  animation-name:moto-cloud-drift; animation-timing-function:linear; animation-iteration-count:infinite;
}
.moto-road{
  position:absolute; left:0; right:0; bottom:64px; height:2px;
  background:repeating-linear-gradient(90deg, var(--line) 0 22px, transparent 22px 42px);
}
.moto-ground{
  position:absolute; left:0; right:0; bottom:0; height:64px;
  background:var(--charcoal-3); border-top:1px solid var(--line);
}
.moto-rider{
  position:absolute; bottom:66px; left:-15%; font-size:44px; line-height:1;
  animation:moto-drive 5.5s linear infinite, moto-bob .35s ease-in-out infinite alternate;
  filter:drop-shadow(0 6px 5px rgba(0,0,0,.35));
}
.moto-rider .pizza-box{
  position:absolute; top:-8px; left:-24px; font-size:20px;
  animation:moto-bob .3s ease-in-out infinite alternate-reverse;
}
.moto-rider .scooter{
  display:inline-block; transform:scaleX(-1);
}
@keyframes moto-drive{
  0%{ left:-15%; }
  100%{ left:115%; }
}
@keyframes moto-bob{
  from{ transform:translateY(0); }
  to{ transform:translateY(-5px); }
}
@keyframes moto-cloud-drift{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-140%); }
}
@media (max-width:900px){
  .moto-scene{ display:none; }
}

/* ---- Carrinho moderno (cardápio do cliente) ---- */
@keyframes cart-pulse{ 0%{transform:scale(1);} 35%{transform:scale(1.015);} 100%{transform:scale(1);} }
@keyframes cart-item-in{ from{opacity:0; transform:translateY(-4px);} to{opacity:1; transform:translateY(0);} }

.cart-card{
  background:var(--charcoal-2); border:1px solid var(--line); border-radius:14px;
  padding:20px; box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.cart-card.pulse{animation:cart-pulse .3s ease;}

.cart-header{display:flex; align-items:center; justify-content:space-between; margin-bottom:2px;}
.cart-header h2{font-family:'Bebas Neue'; letter-spacing:.04em; font-size:22px; margin:0;}
.cart-count{
  background:var(--tomato); color:#fff; font-size:11px; font-weight:700;
  min-width:22px; height:22px; border-radius:11px; display:flex; align-items:center; justify-content:center;
  padding:0 7px; font-variant-numeric:tabular-nums; transition:transform .15s;
}
.cart-sub{font-size:11px; color:var(--cream-dim); text-transform:uppercase; letter-spacing:.08em; margin:2px 0 16px;}

.cart-items{display:flex; flex-direction:column; gap:12px; margin-bottom:14px;}
.cart-item{
  display:flex; align-items:center; gap:10px; padding-bottom:12px; border-bottom:1px solid var(--line);
  animation:cart-item-in .2s ease;
}
.cart-item:last-child{border-bottom:none; padding-bottom:0;}
.cart-item-info{flex:1; min-width:0;}
.cart-item-name{font-size:13px; font-weight:600; color:var(--cream); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.cart-item-unit{font-size:11px; color:var(--cream-dim); margin-top:2px;}

.qty-stepper{display:flex; align-items:center; gap:2px; background:var(--charcoal-3); border-radius:20px; padding:3px; flex-shrink:0;}
.qty-btn{
  width:22px; height:22px; border-radius:50%; border:none; background:var(--charcoal); color:var(--cream);
  font-size:14px; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background-color .15s; line-height:1; padding:0;
}
.qty-btn:hover{background:var(--tomato);}
.qty-value{min-width:20px; text-align:center; font-size:13px; font-weight:700; font-variant-numeric:tabular-nums;}

.cart-item-total{
  font-size:13px; font-weight:700; color:var(--crust); min-width:66px; text-align:right;
  font-variant-numeric:tabular-nums; flex-shrink:0;
}

.cart-empty{text-align:center; padding:32px 10px 20px;}
.cart-empty-icon{font-size:36px; margin-bottom:10px; opacity:.65;}
.cart-empty p{margin:0; font-size:13px; color:var(--cream-dim); line-height:1.5;}

.cart-footer{border-top:1px dashed var(--line); margin-top:2px; padding-top:14px;}
.cart-total-row{display:flex; justify-content:space-between; align-items:baseline;}
.cart-total-row .label{font-size:12px; color:var(--cream-dim); text-transform:uppercase; letter-spacing:.06em;}
.cart-total-row .value{font-family:'Bebas Neue'; font-size:28px; letter-spacing:.02em; color:var(--crust);}

.checkout-btn{
  width:100%; margin-top:14px; padding:15px 18px; border:none; border-radius:10px;
  background:var(--tomato); color:#fff; font-weight:700; font-size:14px; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:10px; text-decoration:none;
  transition:background-color .15s, transform .1s, opacity .15s;
}
.checkout-btn:hover{background:var(--tomato-dark);}
.checkout-btn:active{transform:translateY(1px);}
.checkout-btn.disabled{background:var(--charcoal-3); color:var(--cream-dim); cursor:not-allowed; pointer-events:none;}
.checkout-btn .amount{font-family:'Bebas Neue'; font-size:17px; letter-spacing:.02em;}

/* ---- Seletor de borda recheada (modal) ---- */
.borda-group-label{
  font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--crust);
  font-weight:700; margin:12px 0 4px;
}
.borda-option{
  display:flex; align-items:center; gap:10px; padding:9px 8px; border-radius:8px;
  cursor:pointer; transition:background-color .12s;
}
.borda-option:hover{background:var(--charcoal-3);}
.borda-option input[type="radio"]{width:auto; margin:0; accent-color:var(--tomato);}
.borda-option span:first-of-type{flex:1; font-size:13px; color:var(--cream);}
.borda-price{font-size:12px; font-weight:700; color:var(--crust); font-variant-numeric:tabular-nums;}

/* ---- Chat cliente/admin ---- */
.chat-header{display:flex; align-items:center; justify-content:space-between; margin-bottom:12px;}
.chat-messages{
  display:flex; flex-direction:column; gap:8px; max-height:260px; overflow-y:auto;
  padding:4px 2px;
}
.chat-empty{margin:10px 0; font-size:12px; color:var(--cream-dim); text-align:center;}
.chat-bubble{
  max-width:80%; padding:8px 12px; border-radius:14px; font-size:13px; line-height:1.4;
  word-break:break-word;
}
.chat-bubble-cliente{align-self:flex-end; background:var(--tomato); color:#fff; border-bottom-right-radius:4px;}
.chat-bubble-admin{align-self:flex-start; background:var(--charcoal-3); color:var(--cream); border-bottom-left-radius:4px;}

/* ---- Acompanhamento do pedido ---- */
.status-tracker{display:flex; align-items:flex-start; margin-bottom:4px;}
.status-step{display:flex; flex-direction:column; align-items:center; gap:6px; flex:0 0 auto; width:88px;}
.status-dot{
  width:32px; height:32px; border-radius:50%; background:var(--charcoal-3); border:2px solid var(--line);
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px; color:var(--cream-dim);
  transition:background-color .3s, border-color .3s, color .3s;
}
.status-step.done .status-dot{background:var(--basil); border-color:var(--basil); color:#fff;}
.status-label{font-size:10px; text-align:center; color:var(--cream-dim); line-height:1.3;}
.status-step.done .status-label{color:var(--cream);}
.status-connector{flex:1; height:2px; background:var(--line); margin:15px 2px 0; transition:background-color .3s;}
.status-connector.done{background:var(--basil);}
.status-hint{font-size:12px; color:var(--cream-dim); text-align:center; margin:10px 0 0;}

/* ---- Sugestões (Peça também) ---- */
.suggestion-item{
  display:flex; align-items:center; gap:10px; text-decoration:none; padding:6px;
  border-radius:8px; transition:background-color .15s;
}
.suggestion-item:hover{background:var(--charcoal-3);}
.suggestion-item img{
  width:44px; height:44px; border-radius:8px; object-fit:cover; flex-shrink:0;
}
.suggestion-thumb-placeholder{
  width:44px; height:44px; border-radius:8px; flex-shrink:0; font-size:20px;
  background:radial-gradient(circle at 30% 25%, var(--crust) 0%, var(--tomato-dark) 75%);
  display:flex; align-items:center; justify-content:center;
}
