:root{
    --bg:#FBF5F3;
    --surface:#FFFFFF;
    --surface-soft:#F6ECE8;
    --border:#EBDCD6;
    --primary:#541A1F;
    --primary-dark:#3A1216;
    --primary-soft:#F3D9E1;
    --plum:#6B5B73;
    --sage:#4F7C5B;
    --sage-soft:#E1EFE3;
    --amber:#B4712F;
    --gold:#D8B770;
    --amber-soft:#F5E4D0;
    --text:#2B2320;
    --text-muted:#7A6D68;
    --shadow: 0 1px 2px rgba(43,35,32,.04), 0 8px 24px -12px rgba(43,35,32,.12);
  }
  *{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--bg);
    color:var(--text);
    font-family:'Manrope',sans-serif;
    min-height:100vh;
    padding-bottom:84px;
  }
  h1,h2,h3,.font-display{font-family:'Fraunces',serif;}
  .app{max-width:640px;margin:0 auto;padding:0 16px;}
  body.client-mode .app{padding-top:114px;}

  /* ---------- Header ---------- */
  header.top{
    padding:22px 16px 16px;
    max-width:640px;margin:0 auto;
  }
  .admin-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
  .admin-back-btn{
    background:none;border:none;color:var(--primary-dark);font-weight:700;font-size:13px;
    font-family:'Manrope';cursor:pointer;padding:6px 4px;
  }
  .admin-logout-btn{
    background:var(--surface-soft);border:1px solid var(--border);border-radius:10px;
    color:var(--plum);font-weight:700;font-size:12.5px;font-family:'Manrope';
    cursor:pointer;padding:7px 12px;margin-left:auto;
  }
  .admin-logout-btn:active{background:var(--primary-soft);}
  header.top .eyebrow{
    font-size:11px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--primary);font-weight:700;margin-bottom:4px;
  }
  header.top h1{
    font-size:26px;font-weight:600;margin:0 0 14px;color:var(--text);
    letter-spacing:-.01em;
  }
  .stat-row{
    display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
  }
  .stat-card{
    background:var(--surface);border:1px solid var(--border);
    border-radius:14px;padding:11px 10px;box-shadow:var(--shadow);
  }
  .stat-card .v{font-family:'Fraunces',serif;font-size:19px;font-weight:600;color:var(--primary-dark);line-height:1.1;}
  .stat-card .l{font-size:10.5px;color:var(--text-muted);margin-top:3px;font-weight:600;letter-spacing:.02em;}

  /* ---------- Tabs (content) ---------- */
  .view{display:none;padding:18px 0 8px;}
  .view.active{display:block;}

  /* ---------- Search / toolbar ---------- */
  .toolbar{display:flex;gap:8px;margin-bottom:14px;}
  .search{
    flex:1;background:var(--surface);border:1px solid var(--border);
    border-radius:12px;padding:11px 14px;font-size:14px;font-family:'Manrope';
    color:var(--text);
  }
  .search:focus{outline:2px solid var(--primary-soft);border-color:var(--primary);}
  .search::placeholder{color:var(--text-muted);}

  .btn-import{
    flex-shrink:0;width:44px;height:44px;border-radius:12px;
    background:var(--surface);border:1px solid var(--border);color:var(--primary-dark);
    display:flex;align-items:center;justify-content:center;cursor:pointer;
  }
  .btn-import:active{background:var(--primary-soft);}
  .btn-import svg{width:19px;height:19px;}

  .import-item{
    display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);
    border-radius:12px;padding:9px 11px;margin-bottom:8px;
  }
  .import-item input[type="checkbox"]{width:18px;height:18px;flex-shrink:0;}
  .import-item .imp-fields{flex:1;display:flex;flex-direction:column;gap:5px;}
  .import-item input[type="text"], .import-item input[type="number"]{
    border:1px solid var(--border);border-radius:8px;padding:6px 8px;font-size:12.5px;
    font-family:'Manrope';color:var(--text);width:100%;
  }
  .import-item .imp-row{display:flex;gap:6px;}
  .import-item .imp-row input[type="number"]{max-width:70px;}

  /* ---------- Product card ---------- */
  .plist{display:flex;flex-direction:column;gap:10px;}
  .pcard{
    background:var(--surface);border:1px solid var(--border);border-radius:16px;
    padding:14px 14px 12px;box-shadow:var(--shadow);
  }
  .pcard-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
  .pcard-name{font-size:14.5px;font-weight:700;line-height:1.3;color:var(--text);}
  .badge{
    font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:99px;white-space:nowrap;
    letter-spacing:.01em;
  }
  .badge.stock-ok{background:var(--sage-soft);color:var(--sage);}
  .badge.stock-low{background:var(--amber-soft);color:var(--amber);}
  .badge.stock-zero{background:#F7DEDE;color:#A8324A;}
  .badge.especial{background:var(--primary-soft);color:var(--primary-dark);}

  .pcard-row{display:flex;justify-content:space-between;align-items:center;margin-top:10px;}
  .price-block .price{font-family:'Fraunces',serif;font-size:22px;font-weight:600;color:var(--primary-dark);}
  .price-block .sub{font-size:11px;color:var(--text-muted);margin-top:1px;}
  .stock-ctrl{display:flex;align-items:center;gap:8px;}
  .stock-ctrl button{
    width:30px;height:30px;border-radius:9px;border:1px solid var(--border);
    background:var(--surface-soft);font-size:16px;font-weight:700;color:var(--primary-dark);
    cursor:pointer;display:flex;align-items:center;justify-content:center;
  }
  .stock-ctrl button:active{background:var(--primary-soft);}
  .stock-ctrl .num{min-width:22px;text-align:center;font-weight:700;font-size:14px;}

  .cost-stack{display:flex;height:6px;border-radius:99px;overflow:hidden;margin-top:11px;background:var(--surface-soft);}
  .cost-stack span{height:100%;}
  .seg-produto{background:var(--plum);}
  .seg-frete{background:#C99A6B;}
  .seg-sacola{background:#7FA9C9;}
  .seg-cartao{background:#D6A0B8;}
  .seg-cheirinho{background:#B7C77E;}
  .seg-extras{background:#C9A227;}
  .seg-taxacartao{background:#8FA6C9;}
  .seg-margem{background:var(--primary-soft);}

  .pcard-actions{display:flex;gap:8px;margin-top:11px;}
  .pcard-actions button{
    flex:1;border:1px solid var(--border);background:var(--surface-soft);
    border-radius:10px;padding:8px;font-size:12.5px;font-weight:700;color:var(--text);
    font-family:'Manrope';cursor:pointer;
  }
  .pcard-actions button.danger{color:#A8324A;}
  .pcard-actions button:active{background:var(--primary-soft);}
  .pcard-actions button.venda-btn{background:var(--sage-soft);color:var(--sage);border-color:var(--sage-soft);}
  .pcard-actions button.venda-btn:active{background:var(--sage);color:#fff;}

  .empty{
    text-align:center;padding:50px 20px;color:var(--text-muted);
  }
  .empty .font-display{font-size:19px;color:var(--text);margin-bottom:6px;}

  /* ---------- Form ---------- */
  .field{margin-bottom:16px;}
  .field label{
    display:block;font-size:12px;font-weight:700;color:var(--plum);
    margin-bottom:6px;letter-spacing:.02em;text-transform:uppercase;
  }
  .field input, .field select, .field textarea{
    width:100%;background:var(--surface);border:1px solid var(--border);
    border-radius:12px;padding:12px 14px;font-size:15px;font-family:'Manrope';color:var(--text);
  }
  .field textarea{resize:vertical;min-height:52px;}
  .field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary);}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .helper{font-size:11.5px;color:var(--text-muted);margin-top:5px;}

  .preview-box{
    background:var(--surface);border:1px solid var(--border);border-radius:16px;
    padding:16px;margin-top:6px;margin-bottom:20px;box-shadow:var(--shadow);
  }
  .preview-box h3{font-size:14px;margin:0 0 12px;color:var(--plum);font-family:'Manrope';font-weight:800;text-transform:uppercase;letter-spacing:.03em;}
  .preview-price{display:flex;align-items:baseline;gap:8px;margin-bottom:14px;}
  .preview-price .big{font-family:'Fraunces',serif;font-size:36px;font-weight:600;color:var(--primary-dark);}
  .preview-price .tag{font-size:12px;font-weight:700;padding:4px 10px;border-radius:99px;background:var(--sage-soft);color:var(--sage);}
  .preview-price .tag.especial{background:var(--primary-soft);color:var(--primary-dark);}
  .breakdown-row{display:flex;justify-content:space-between;font-size:12.5px;padding:6px 0;border-bottom:1px dashed var(--border);}
  .breakdown-row:last-child{border-bottom:none;}
  .breakdown-row .dot{display:inline-block;width:8px;height:8px;border-radius:99px;margin-right:7px;}
  .breakdown-row .label{color:var(--text-muted);display:flex;align-items:center;}
  .breakdown-row .val{font-weight:700;}

  .btn-primary{
    width:100%;background:var(--primary);color:#fff;border:none;border-radius:14px;
    padding:15px;font-size:15px;font-weight:700;font-family:'Manrope';cursor:pointer;
    box-shadow:0 6px 16px -4px rgba(168,50,90,.45);
  }
  .btn-primary:active{background:var(--primary-dark);}
  .btn-ghost{
    width:100%;background:transparent;color:var(--text-muted);border:1px solid var(--border);
    border-radius:14px;padding:13px;font-size:13.5px;font-weight:700;font-family:'Manrope';
    cursor:pointer;margin-top:10px;
  }

  /* ---------- Config ---------- */
  .config-group{
    background:var(--surface);border:1px solid var(--border);border-radius:16px;
    padding:16px;margin-bottom:14px;box-shadow:var(--shadow);
  }
  .config-group h3{font-size:13px;margin:0 0 4px;color:var(--plum);font-family:'Manrope';font-weight:800;text-transform:uppercase;letter-spacing:.03em;}
  .config-group .desc{font-size:11.5px;color:var(--text-muted);margin-bottom:12px;}
  .config-group .field{margin-bottom:12px;}
  .config-group .field:last-child{margin-bottom:0;}
  .derived{
    background:var(--surface-soft);border-radius:10px;padding:9px 12px;font-size:12px;
    color:var(--plum);font-weight:700;margin-top:10px;
  }

  /* ---------- Bottom nav ---------- */
  nav.tabbar{
    position:fixed;bottom:0;left:0;right:0;
    background:rgba(255,255,255,.92);backdrop-filter:blur(10px);
    border-top:1px solid var(--border);
    display:flex;justify-content:space-around;
    padding:9px 8px calc(9px + env(safe-area-inset-bottom));
    z-index:50;
  }
  nav.tabbar button{
    background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:3px;
    color:var(--text-muted);font-family:'Manrope';font-size:10.5px;font-weight:700;
    padding:4px 14px;border-radius:12px;cursor:pointer;
  }
  nav.tabbar button.active{color:var(--primary-dark);}
  nav.tabbar button svg{width:21px;height:21px;}

  .fab-add{
    position:fixed;right:18px;bottom:88px;width:52px;height:52px;border-radius:16px;
    background:var(--primary);color:#fff;border:none;font-size:26px;line-height:1;
    box-shadow:0 10px 22px -6px rgba(168,50,90,.55);cursor:pointer;z-index:40;
    display:none;align-items:center;justify-content:center;
  }
  .fab-add:active{background:var(--primary-dark);}

  .modal-overlay{
    position:fixed;inset:0;background:rgba(43,35,32,.45);z-index:60;
    display:none;align-items:flex-end;justify-content:center;
  }
  .modal-overlay.active{display:flex;}
  .modal-sheet{
    background:var(--bg);width:100%;max-width:640px;border-radius:22px 22px 0 0;
    padding:20px 18px calc(20px + env(safe-area-inset-bottom));
    max-height:88vh;overflow-y:auto;
  }
  .modal-sheet .handle{width:36px;height:4px;background:var(--border);border-radius:99px;margin:0 auto 16px;}
  .modal-sheet h2{font-size:20px;margin:0 0 16px;}

  .toast{
    position:fixed;bottom:96px;left:50%;transform:translateX(-50%) translateY(20px);
    background:var(--text);color:#fff;padding:11px 20px;border-radius:99px;font-size:13px;
    font-weight:600;box-shadow:0 8px 20px rgba(0,0,0,.25);opacity:0;pointer-events:none;
    transition:all .25s ease;z-index:70;white-space:nowrap;
  }
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

  .install-banner{
    background:var(--primary-soft);border:1px solid var(--primary-soft);border-radius:14px;
    padding:12px 14px;margin:0 0 14px;font-size:12px;color:var(--primary-dark);line-height:1.5;
  }
  .install-banner b{display:block;font-size:13px;margin-bottom:2px;}

  /* ---------- Catálogo (vitrine pública) ---------- */
  .catalog-hero{padding:6px 0 4px;text-align:center;}
  .catalog-title{
    font-family:'Fraunces',serif;font-size:24px;font-weight:600;color:var(--primary-dark);
    margin:0 0 6px;letter-spacing:-.01em;
  }

  /* ---------- Login (área da loja) ---------- */
  .login-box{
    max-width:340px;margin:48px auto 0;background:var(--surface);border:1px solid var(--border);
    border-radius:20px;padding:26px 22px;box-shadow:var(--shadow);
  }
  .login-logo{display:block;max-width:150px;width:60%;height:auto;margin:0 auto 16px;}
  .login-box h1{font-family:'Fraunces',serif;font-size:22px;font-weight:600;color:var(--text);margin:2px 0 18px;}

  .spinner{
    width:26px;height:26px;margin:6px auto 0;border-radius:50%;
    border:3px solid var(--border);border-top-color:var(--primary);
    animation:spin .8s linear infinite;
  }
  @keyframes spin{to{transform:rotate(360deg);}}
  .catalog-hero p{font-size:13px;color:var(--text-muted);margin:0;line-height:1.5;}
  .catalog-hero .hero-sub{font-size:11.5px;opacity:.85;}

  /* ---------- Vendas ---------- */
  .venda-card{
    background:var(--surface);border:1px solid var(--border);border-radius:14px;
    padding:12px 14px;margin-bottom:9px;
  }
  .venda-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px;}
  .venda-nome{font-size:13px;font-weight:700;color:var(--text);}
  .venda-valor{font-family:'Fraunces',serif;font-size:16px;font-weight:600;color:var(--primary-dark);white-space:nowrap;}
  .venda-card-bottom{display:flex;justify-content:space-between;margin-top:5px;font-size:11.5px;color:var(--text-muted);}

  .aviso-card{
    background:var(--surface);border:1px solid var(--border);border-radius:14px;
    padding:11px 13px;margin-bottom:8px;
  }
  .aviso-card .a-top{display:flex;justify-content:space-between;align-items:center;gap:8px;}
  .aviso-card .a-produto{font-size:12.5px;font-weight:700;color:var(--text);}
  .aviso-card .a-cliente{font-size:11.5px;color:var(--text-muted);margin-top:2px;}
  .aviso-card .a-actions{display:flex;gap:7px;margin-top:9px;}
  .aviso-card .a-actions button{
    flex:1;border:1px solid var(--border);border-radius:9px;padding:7px;
    font-size:11.5px;font-weight:700;font-family:'Manrope';cursor:pointer;
  }
  .aviso-card .a-whats{background:var(--sage-soft);color:var(--sage);border-color:var(--sage-soft);}
  .aviso-card .a-dismiss{background:var(--surface-soft);color:var(--text-muted);}

  /* ---------- Venda presencial ---------- */
  .vp-barra{
    position:fixed;left:16px;right:16px;bottom:78px;max-width:608px;margin:0 auto;
    background:var(--primary-dark);color:#fff;border-radius:16px;padding:13px 16px;
    display:none;align-items:center;justify-content:space-between;gap:10px;
    box-shadow:0 10px 26px -8px rgba(43,35,32,.45);z-index:56;
  }
  .vp-barra.show{display:flex;}
  .vp-barra-info{display:flex;flex-direction:column;font-size:12px;}
  .vp-barra-info strong{font-family:'Fraunces',serif;font-size:18px;font-weight:600;}
  .vp-barra .btn-primary{background:#fff;color:var(--primary-dark);padding:10px 16px;font-size:13px;}

  /* ---------- Custos extras (lista dinâmica) ---------- */
  .extra-row{display:flex;gap:8px;align-items:center;margin-bottom:8px;}
  .extra-row input[type="text"]{flex:1.3;}
  .extra-row input[type="number"]{flex:1;}
  .extra-row input{
    border:1px solid var(--border);border-radius:10px;padding:9px 11px;font-size:13px;
    font-family:'Manrope';color:var(--text);background:var(--surface);
  }
  .extra-row .btn-remove-extra{
    flex-shrink:0;width:32px;height:32px;border-radius:9px;border:1px solid var(--border);
    background:var(--surface-soft);color:#A8324A;font-size:16px;font-weight:700;cursor:pointer;
  }

  /* ---------- Resumo (dashboard) ---------- */
  .dash-group{margin-bottom:22px;}
  .dash-group h3{
    font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;
    color:var(--plum);margin:0 0 9px;
  }
  .dash-row{display:flex;gap:9px;}
  .dash-card{
    flex:1;background:var(--surface);border:1px solid var(--border);border-radius:14px;
    padding:13px 10px;text-align:center;box-shadow:var(--shadow);
  }
  .dash-v{font-family:'Fraunces',serif;font-size:17px;font-weight:600;color:var(--primary-dark);}
  .dash-l{font-size:10.5px;color:var(--text-muted);margin-top:3px;font-weight:600;}
  .dash-list-item{
    display:flex;justify-content:space-between;align-items:center;gap:8px;
    background:var(--surface);border:1px solid var(--border);border-radius:12px;
    padding:10px 13px;margin-bottom:7px;font-size:12.5px;
  }
  .dash-list-item .n{font-weight:700;color:var(--text);}
  .dash-list-item .v{font-weight:700;color:var(--primary-dark);white-space:nowrap;}
  .dash-list-item.alerta .v{color:#A8324A;}

  /* ---------- Carrossel de destaques ---------- */
  .destaques-wrap{margin-top:18px;}
  .destaques-titulo{
    font-family:'Fraunces',serif;font-size:15px;font-weight:600;color:var(--primary-dark);
    margin-bottom:9px;
  }
  .destaques-track{
    display:flex;gap:11px;overflow-x:auto;scroll-snap-type:x mandatory;
    padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  .destaques-track::-webkit-scrollbar{display:none;}
  .destaque-card{
    scroll-snap-align:start;flex:0 0 auto;width:128px;
    background:var(--surface);border:1px solid var(--border);border-radius:14px;
    overflow:hidden;box-shadow:var(--shadow);cursor:pointer;
  }
  .destaque-card .d-photo{
    width:100%;aspect-ratio:1/1;background:var(--surface-soft);display:flex;
    align-items:center;justify-content:center;overflow:hidden;
  }
  .destaque-card .d-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .destaque-card .d-photo .ph-letter{font-family:'Fraunces',serif;font-size:24px;color:var(--primary);opacity:.35;}
  .destaque-card .d-body{padding:8px 9px 10px;}
  .destaque-card .d-nome{
    font-size:11px;font-weight:700;color:var(--text);line-height:1.28;
    height:28px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  }
  .destaque-card .d-preco{font-family:'Fraunces',serif;font-size:15px;font-weight:600;color:var(--primary-dark);margin-top:5px;}

  /* ---------- Entrada suave dos cards ao rolar ---------- */
  #catalogList .ccard{opacity:0;transform:translateY(14px);transition:opacity .45s ease, transform .45s ease;}
  #catalogList .ccard.in-view{opacity:1;transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    .ccard{opacity:1;transform:none;transition:none;}
  }

  .cgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .ccard{
    background:var(--surface);border:1px solid var(--border);border-radius:16px;
    overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;
  }
  .ccard-photo{
    width:100%;aspect-ratio:1/1;background:var(--surface-soft);display:flex;
    align-items:center;justify-content:center;overflow:hidden;
  }
  .ccard-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .ccard-photo .ph-letter{font-family:'Fraunces',serif;font-size:34px;color:var(--primary);opacity:.35;}
  .ccard-body{padding:10px 11px 11px;display:flex;flex-direction:column;flex:1;}
  .ccard-name{
    font-size:12.5px;font-weight:700;line-height:1.32;color:var(--text);
    min-height:66px;
  }
  .ccard-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px;min-height:22px;}
  .ccard-price{font-family:'Fraunces',serif;font-size:19px;font-weight:600;color:var(--primary-dark);margin-top:7px;min-height:24px;}
  .ccard-foot{display:flex;align-items:center;justify-content:space-between;margin-top:9px;gap:6px;}
  .ccard-add{
    background:var(--primary);color:#fff;border:none;border-radius:10px;padding:8px 12px;
    font-size:12px;font-weight:700;font-family:'Manrope';cursor:pointer;flex:1;
  }
  .ccard-add:active{background:var(--primary-dark);}
  .ccard-add[disabled]{background:var(--border);color:var(--text-muted);cursor:default;}
  .ccard-avise{background:var(--surface-soft);color:var(--plum);border:1px solid var(--border);font-size:11px;}
  .ccard-avise:active{background:var(--primary-soft);}
  .ccard-qty{display:flex;align-items:center;gap:8px;flex:1;justify-content:space-between;}
  .ccard-qty button{
    width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--surface-soft);
    font-size:15px;font-weight:700;color:var(--primary-dark);cursor:pointer;
  }
  .ccard-qty .num{font-weight:700;font-size:13px;}

  /* ---------- Skeleton (carregando catálogo) ---------- */
  @keyframes sk-shimmer{0%{background-position:-200px 0;}100%{background-position:200px 0;}}
  .ccard-skeleton .ccard-photo{background:var(--surface-soft);}
  .sk-line{
    height:11px;border-radius:6px;margin-top:8px;
    background:linear-gradient(90deg,var(--surface-soft) 25%,var(--border) 37%,var(--surface-soft) 63%);
    background-size:400px 100%;animation:sk-shimmer 1.4s ease-in-out infinite;
  }
  .sk-name{width:85%;height:22px;}
  .sk-price{width:50%;height:19px;margin-top:11px;}

  /* ---------- Paginação do catálogo ---------- */
  .catalog-pagination{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    margin:16px 0 140px; position:relative; z-index:52;
  }
  .page-btn{
    background:var(--surface);border:1px solid var(--border);border-radius:12px;
    padding:9px 14px;font-size:12.5px;font-weight:700;color:var(--text);
    font-family:'Manrope';cursor:pointer;
  }
  .page-btn:active{background:var(--primary-soft);}
  .page-btn[disabled]{opacity:.4;cursor:default;}
  .page-info{font-size:12px;color:var(--text-muted);font-weight:600;}

  /* ---------- Barra superior fixa (cliente) ---------- */
  .client-topbar{
    position:fixed;top:0;left:0;right:0;z-index:55;height:66px;
    background:var(--primary);display:none;align-items:center;justify-content:space-between;
    padding:0 16px;box-shadow:0 4px 14px -4px rgba(43,35,32,.35);
  }
  .client-topbar.show{display:flex;}

  /* ---------- Faixa de anúncio (marquee) ---------- */
  .promo-marquee{
    position:fixed;left:0;right:0;top:66px;z-index:54;height:32px;
    background:var(--primary-dark);overflow:hidden;white-space:nowrap;
    border-top:1px solid rgba(216,183,112,.25);border-bottom:1px solid rgba(216,183,112,.25);
    display:none;align-items:center;
  }
  .promo-marquee.show{display:flex;}
  .promo-marquee-track{
    display:inline-flex;align-items:center;width:max-content;
    animation:promo-scroll 48s linear infinite;
    will-change:transform;
  }
  .promo-marquee:hover .promo-marquee-track{animation-play-state:paused;}
  @keyframes promo-scroll{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }
  .promo-item{
    display:inline-flex;align-items:center;gap:9px;padding:0 16px;
    font-size:10.5px;letter-spacing:.05em;font-weight:700;color:var(--gold);
    white-space:nowrap;text-transform:uppercase;
  }
  .promo-item img{height:15px;width:auto;flex-shrink:0;filter:drop-shadow(0 0 1px rgba(0,0,0,.3));}
  .promo-sep{color:var(--gold);opacity:.55;font-size:9px;}
  .topbar-logo{
    height:38px;width:auto;
  }

  /* ---------- Barra fixa do carrinho (resumo, acima do menu inferior) ---------- */
  .cart-bar{
    position:fixed;left:16px;right:16px;bottom:78px;max-width:608px;margin:0 auto;
    background:var(--primary-dark);color:#fff;border-radius:16px;padding:13px 16px;
    display:none;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;
    box-shadow:0 10px 26px -8px rgba(43,35,32,.45);z-index:50;
  }
  .cart-bar.show{display:flex;}
  .cart-bar .cb-left{font-size:12.5px;font-weight:700;}
  .cart-bar .cb-left small{display:block;font-size:10.5px;font-weight:600;opacity:.75;margin-top:1px;}
  .cart-bar .cb-right{font-family:'Fraunces',serif;font-size:17px;font-weight:600;}

  .cart-icon-btn{
    position:relative;width:38px;height:38px;border-radius:50%;
    background:rgba(255,255,255,.16);border:none;
    display:flex;align-items:center;justify-content:center;cursor:pointer;
    color:#fff;
  }
  .cart-icon-btn:active{background:rgba(255,255,255,.28);}
  .cart-icon-btn svg{width:19px;height:19px;}
  .cart-icon-badge{
    position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 4px;
    background:#fff;color:var(--primary-dark);border-radius:99px;
    font-size:10px;font-weight:800;font-family:'Manrope';
    display:flex;align-items:center;justify-content:center;
    border:2px solid var(--primary);
  }

  .clist{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;}
  .citem{
    display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);
    border-radius:14px;padding:10px 12px;
  }
  .citem .ci-name{flex:1;font-size:12.5px;font-weight:700;line-height:1.3;}
  .citem .ci-sub{font-size:11px;color:var(--text-muted);margin-top:2px;font-weight:600;}
  .citem .ci-qty{display:flex;align-items:center;gap:7px;}
  .citem .ci-qty button{
    width:26px;height:26px;border-radius:8px;border:1px solid var(--border);background:var(--surface-soft);
    font-size:14px;font-weight:700;color:var(--primary-dark);cursor:pointer;
  }
  .cart-total-row{
    display:flex;justify-content:space-between;align-items:center;padding:14px 2px;
    border-top:1px dashed var(--border);margin-top:2px;margin-bottom:14px;
  }
  .cart-total-row .l{font-size:13px;font-weight:700;color:var(--plum);text-transform:uppercase;letter-spacing:.02em;}
  .cart-total-row .v{font-family:'Fraunces',serif;font-size:24px;font-weight:600;color:var(--primary-dark);}

  .lock-link{
    text-align:center;padding:22px 0 4px;font-size:11px;color:var(--text-muted);
    text-decoration:underline;text-underline-offset:2px;cursor:pointer;
  }
  .admin-logo{max-width:110px;width:100%;height:auto;margin-bottom:6px;}

  /* ---------- Photo picker (admin) ---------- */
  .photo-picker{display:flex;align-items:center;gap:12px;}
  .photo-preview{
    width:72px;height:72px;border-radius:14px;background:var(--surface-soft);
    border:1px solid var(--border);display:flex;align-items:center;justify-content:center;
    overflow:hidden;flex-shrink:0;
  }
  .photo-preview span{font-size:10px;color:var(--text-muted);font-weight:600;text-align:center;padding:0 4px;}
  .photo-preview img{width:100%;height:100%;object-fit:cover;display:block;}
  .photo-picker-actions{display:flex;flex-direction:column;gap:8px;flex:1;}
  .btn-photo{
    display:inline-block;text-align:center;background:var(--surface-soft);border:1px solid var(--border);
    border-radius:10px;padding:9px 12px;font-size:12.5px;font-weight:700;color:var(--text);
    font-family:'Manrope';cursor:pointer;
  }
  .btn-photo:active{background:var(--primary-soft);}
  .btn-photo.danger{color:#A8324A;background:none;border-color:var(--border);}

  /* ---------- Responsivo (telas maiores: tablet/desktop) ---------- */
  @media (min-width: 860px){
    .app{max-width:980px;padding:0 32px;}
    header.top{max-width:980px;padding-left:32px;padding-right:32px;}

    /* catálogo com mais colunas, aproveitando a largura */
    .cgrid{grid-template-columns:repeat(4,1fr);gap:18px;}

    /* lista de produtos do painel em grade, em vez de empilhada */
    .plist{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}

    /* barra inferior vira uma "dock" centralizada, não a largura toda */
    nav.tabbar{
      left:50%;right:auto;transform:translateX(-50%);
      max-width:520px;border-radius:20px;bottom:18px;
      border:1px solid var(--border);border-top:1px solid var(--border);
      box-shadow:var(--shadow);
    }
    body{padding-bottom:110px;}

    /* modal como janela central, não bottom sheet */
    .modal-overlay{align-items:center;padding:24px;}
    .modal-sheet{
      max-width:520px;border-radius:22px;max-height:82vh;
      box-shadow:0 24px 60px -12px rgba(43,35,32,.35);
    }

    .toast{bottom:130px;}
  }

  @media (min-width: 1200px){
    .app{max-width:1140px;}
    header.top{max-width:1140px;}
    .cgrid{grid-template-columns:repeat(5,1fr);}
    .plist{grid-template-columns:repeat(3,1fr);}
  }
