:root{--radius:14px;}
    html[data-theme="light"]{--bg:#faf6f4;--surface:#ffffff;--surface-alt:#fdf1ee;--text:#2b2320;--muted:#8a7d75;--border:#eee0da;--accent:#b5495b;--accent-dark:#963c4b;--accent-light:#f6dde2;--danger:#c0392b;--shadow:0 4px 20px rgba(60,40,35,0.08);}
    html[data-theme="dark"]{--bg:#181412;--surface:#221c19;--surface-alt:#2a221e;--text:#f3ece7;--muted:#a89a90;--border:#3a322c;--accent:#e08a98;--accent-dark:#c96f7e;--accent-light:#3a2229;--danger:#e0685a;--shadow:0 4px 20px rgba(0,0,0,0.35);}
    *{box-sizing:border-box;}
    html{scroll-behavior:smooth;}
    body{margin:0;background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;line-height:1.6;transition:background .3s,color .3s;min-height:100vh;}
    @keyframes fadeInUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
    @keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
    @keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
    @keyframes pop{0%{transform:scale(1);}40%{transform:scale(1.35);}100%{transform:scale(1);}}
    #app{animation:fadeIn .35s ease;}
    #app > *{animation:fadeInUp .5s ease both;}
    h1,h2,h3{font-family:'Playfair Display',serif;color:var(--text);margin:0 0 12px;line-height:1.25;}
    a{color:var(--accent);text-decoration:none;}
    p{margin:0 0 12px;color:var(--text);}
    .muted{color:var(--muted);}
    button,select,input,textarea{font-family:inherit;}
    .site-header{position:sticky;top:0;z-index:50;background:var(--surface);border-bottom:1px solid var(--border);}
    .header-inner{max-width:1200px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
    .logo{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--text);}
    .main-nav{display:flex;gap:24px;align-items:center;flex-wrap:wrap;}
    .main-nav a{color:var(--text);font-weight:500;font-size:15px;}
    .main-nav a:hover{color:var(--accent);}
    .nav-cart{display:flex;align-items:center;gap:6px;}
    .cart-badge{background:var(--accent);color:#fff;font-size:11px;min-width:18px;height:18px;border-radius:9px;display:none;align-items:center;justify-content:center;padding:0 5px;transition:transform .2s;}
    .cart-badge.bump{animation:pop .35s ease;}
    .nav-cart{transition:transform .2s;}
    .nav-cart:hover{transform:translateY(-1px);}
    .header-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
    .city-block{display:flex;align-items:center;gap:10px;background:var(--surface-alt);padding:6px 12px;border-radius:30px;border:1px solid var(--border);}
    .city-phone{font-weight:600;font-size:14px;color:var(--accent-dark);white-space:nowrap;}
    .city-select{border:none;background:transparent;color:var(--text);font-weight:500;font-size:14px;cursor:pointer;}
    .icon-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--surface-alt);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .18s,border-color .18s,color .18s;}
    .icon-btn:hover{background:var(--accent-light);transform:none;}
    .btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;padding:11px 22px;border-radius:30px;font-weight:600;font-size:14px;cursor:pointer;border:1px solid transparent;transition:background .18s,color .18s,border-color .18s,box-shadow .18s;}
    .btn:active{transform:scale(.96);}
    .btn-primary{background:var(--accent);color:#fff;}
    .btn-primary:hover{background:var(--accent-dark);transform:none;box-shadow:0 6px 16px rgba(0,0,0,0.12);}
    .btn-outline{background:transparent;border-color:var(--border);color:var(--text);}
    .btn-outline:hover{border-color:var(--accent);color:var(--accent);transform:none;}
    .btn-lg{padding:14px 28px;font-size:15px;}
    .btn-sm{padding:8px 16px;font-size:13px;}
    .btn-icon{width:40px;height:40px;padding:0;border-radius:50%;}
    .btn-danger{background:transparent;border:1px solid var(--danger);color:var(--danger);}
    .btn-danger:hover{background:var(--danger);color:#fff;}
    .btn-danger-confirm{background:var(--danger);color:#fff;}
    .full-width{width:100%;}
    .section{max-width:1200px;margin:0 auto;padding:48px 24px;}
    .section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:24px;flex-wrap:wrap;gap:12px;}
    .link-more{font-weight:600;font-size:14px;color:var(--accent);}
    .hero{max-width:1200px;margin:0 auto;padding:64px 24px;display:flex;align-items:center;gap:48px;flex-wrap:wrap;}
    .hero-content{flex:1;min-width:300px;}
    .hero-eyebrow{display:inline-block;color:var(--accent-dark);background:var(--accent-light);padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;margin-bottom:16px;}
    .hero-content h1{font-size:clamp(28px,4vw,44px);margin-bottom:16px;}
    .hero-content p{max-width:520px;color:var(--muted);margin-bottom:28px;}
    .hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
    .hero-visual{width:220px;height:220px;border-radius:50%;background:radial-gradient(circle at 30% 30%, var(--accent-light), var(--surface-alt));display:flex;align-items:center;justify-content:center;font-size:96px;flex-shrink:0;animation:floaty 5s ease-in-out infinite;}
    .category-chips{display:flex;gap:10px;flex-wrap:wrap;}
    .catalog-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-top:22px;flex-wrap:wrap;}
    .catalog-sort{display:flex;flex-direction:column;gap:6px;min-width:220px;font-size:13px;font-weight:600;color:var(--muted);}
    .catalog-sort select{padding:10px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;cursor:pointer;}
    .catalog-sort select:focus{outline:none;border-color:var(--accent);}
    .chip{padding:9px 18px;border-radius:22px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;font-weight:500;transition:border-color .2s,color .2s,transform .2s;}
    .chip:hover{border-color:var(--accent);color:var(--accent);transform:none;}
    .chip-active{background:var(--accent);border-color:var(--accent);color:#fff;}
    .products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:24px;}
    .product-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;display:flex;flex-direction:column;}
    .product-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--accent);}
    .product-image{height:200px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:background-size .4s ease;}
    .product-card:hover .product-image{background-size:110%;}
    .product-info{padding:18px;display:flex;flex-direction:column;gap:6px;}
    .product-category{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);}
    .product-info h3{font-size:18px;margin:0;}
    .product-info h3 a{color:var(--text);}
    .product-price{font-weight:700;color:var(--accent-dark);font-size:16px;margin:4px 0;}
    .product-actions{display:flex;gap:10px;margin-top:8px;}
    .features-section{background:var(--surface-alt);border-radius:var(--radius);}
    .features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;}
    .feature-card{text-align:center;padding:12px;}
    .feature-icon{width:56px;height:56px;border-radius:50%;background:var(--accent-light);color:var(--accent-dark);display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto 16px;transition:transform .3s ease;}
    .feature-card:hover .feature-icon{transform:scale(1.1) rotate(6deg);}
    .feature-card h3{font-size:17px;}
    .feature-card p{color:var(--muted);font-size:14px;}
    .empty-hint{color:var(--muted);padding:32px;text-align:center;grid-column:1/-1;}
    .back-link{display:inline-flex;align-items:center;gap:8px;color:var(--muted);margin-bottom:24px;font-weight:500;}
    .back-link:hover{color:var(--accent);}
    .product-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
    .product-detail-image{border-radius:var(--radius);height:420px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;}
    .product-detail-info h1{font-size:32px;}
    .product-price-lg{font-size:26px;font-weight:700;color:var(--accent-dark);margin:12px 0;}
    .product-description{color:var(--muted);margin-bottom:24px;}
    .qty-row{display:flex;align-items:center;gap:14px;margin-bottom:24px;}
    .qty-selector{display:flex;align-items:center;border:1px solid var(--border);border-radius:24px;overflow:hidden;}
    .qty-selector button{width:36px;height:36px;border:none;background:var(--surface-alt);color:var(--text);cursor:pointer;font-size:16px;}
    .qty-selector input{width:48px;border:none;text-align:center;background:var(--surface);color:var(--text);font-size:15px;}
    .product-detail-actions{display:flex;gap:14px;flex-wrap:wrap;}
    .empty-state{text-align:center;padding:80px 24px;}
    .empty-icon{font-size:56px;color:var(--muted);margin-bottom:20px;}
    .cart-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:40px;align-items:start;}
    .cart-items{display:flex;flex-direction:column;gap:16px;}
    .cart-item{display:grid;grid-template-columns:70px 1fr auto auto auto;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;}
    .cart-item-image{width:70px;height:70px;border-radius:10px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;font-size:28px;}
    .cart-item-info h3{font-size:15px;margin:0;}
    .qty-controls{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:20px;padding:2px 6px;}
    .qty-controls button{width:26px;height:26px;border:none;background:transparent;color:var(--text);cursor:pointer;font-size:15px;}
    .cart-item-total{font-weight:700;color:var(--accent-dark);}
    .btn-icon-remove{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:16px;}
    .btn-icon-remove:hover{color:var(--danger);}
    .cart-summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;position:sticky;top:100px;}
    .summary-row{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border);margin-bottom:16px;font-size:18px;}
    .form-group{margin-bottom:16px;display:flex;flex-direction:column;gap:6px;}
    .form-group label{font-size:13px;font-weight:600;color:var(--muted);}
    .form-group input,.form-group textarea,.form-group select{padding:11px 14px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:14px;}
    .form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--accent);}
    .checkout-form{display:flex;flex-direction:column;gap:4px;}
    .checkout-form button{margin-top:6px;}
    .hint-text{color:var(--muted);font-size:13px;margin-top:14px;}
    .contacts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;}
    .contact-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;}
    .contact-card-active{border-color:var(--accent);box-shadow:var(--shadow);}
    .contact-card p{margin:6px 0;color:var(--muted);}
    .admin-section{max-width:800px;}
    .admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;margin-bottom:24px;}
    .admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px;}
    .admin-note{background:var(--accent-light);color:var(--accent-dark);padding:14px 18px;border-radius:10px;font-size:14px;margin-bottom:24px;display:flex;gap:10px;align-items:flex-start;}
    .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
    .form-actions{display:flex;gap:12px;}
    .admin-products-list{display:flex;flex-direction:column;gap:12px;}
    .admin-product-row{display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:14px;border:1px solid var(--border);padding:10px;border-radius:10px;}
    .admin-product-thumb{width:56px;height:56px;border-radius:8px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;font-size:24px;}
    .admin-product-meta{display:flex;flex-direction:column;gap:2px;}
    .admin-product-actions{display:flex;gap:8px;}
    .site-footer{background:var(--surface-alt);border-top:1px solid var(--border);margin-top:60px;}
    .footer-inner{max-width:1200px;margin:0 auto;padding:48px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:32px;}
    .footer-col h3{font-size:18px;}
    .footer-col h4{font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;}
    .footer-col a{display:block;color:var(--text);margin-bottom:8px;font-size:14px;}
    .footer-col a:hover{color:var(--accent);}
    .footer-col span{display:block;margin-bottom:8px;color:var(--muted);font-size:14px;}
    .footer-admin-link{color:var(--accent) !important;font-weight:600;}
    .footer-bottom{text-align:center;padding:20px;color:var(--muted);font-size:13px;border-top:1px solid var(--border);}
    .toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--text);color:var(--bg);padding:14px 24px;border-radius:30px;font-size:14px;font-weight:500;opacity:0;pointer-events:none;transition:.3s;z-index:100;box-shadow:var(--shadow);}
    .toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
    .toast.toast-error{background:var(--danger);color:#fff;}
    @media(max-width:800px){
     .product-detail-grid{grid-template-columns:1fr;}
     .cart-layout{grid-template-columns:1fr;}
     .cart-item{grid-template-columns:56px 1fr;}
     .form-row{grid-template-columns:1fr;}
    }

/* YummyPack shared pages */
.page-shell{min-height:calc(100vh - 160px);}
.page-enter{animation:pageFade .06s ease-out both;}
@keyframes pageFade{from{opacity:.96}to{opacity:1}}

/* Image editor / product image stage */
.image-stage,
.product-detail-image,
.image-editor-preview {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.image-stage {
  width: 100%;
  height: 200px;
  background: var(--surface-alt);
  display: flex;
  align-items: center;
  justify-content: center;
}
.image-stage .image-blur-bg,
.product-detail-image .image-blur-bg,
.image-editor-preview .image-blur-bg {
  position: absolute;
  inset: -24px;
  z-index: 0;
  background-size: cover;
  background-position: center;
  filter: blur(18px);
  transform: scale(1.08);
  opacity: .42;
}
.image-stage .image-foreground,
.product-detail-image .image-foreground,
.image-editor-preview .image-foreground {
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 50%;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transform: translate(calc(-50% + var(--img-x, 0px)), calc(-50% + var(--img-y, 0px))) scale(var(--img-scale, 1));
  transform-origin: center center;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}
.product-detail-image {
  position: relative;
  height: 420px;
  background: var(--surface-alt);
}
.product-detail-image .image-foreground {
  max-width: 90%;
  max-height: 90%;
}
.image-editor {
  width: 100%;
}
.image-editor-preview {
  width: 100%;
  height: 360px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface-alt);
  cursor: grab;
  touch-action: none;
}
.image-editor-preview.dragging { cursor: grabbing; }
.image-editor-preview .image-foreground {
  max-width: 92%;
  max-height: 92%;
}
.image-editor-empty {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 30px;
  color: var(--muted);
  font-size: 14px;
}
.image-editor-controls {
  padding-top: 12px;
}
.image-editor-controls-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.image-editor-controls-row input[type="range"] {
  flex: 1;
  min-width: 120px;
}
.image-editor-controls-row strong {
  min-width: 48px;
  text-align: right;
  font-size: 13px;
}
.image-editor-help {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
}
@media(max-width:800px){
  .image-editor-preview{height:280px;}
  .product-detail-image{height:340px;}
}


/* Responsive layout: phones, tablets and narrow screens */
@media (max-width: 600px) {
  .header-inner { padding: 10px 14px; gap: 10px; }
  .main-nav { width: 100%; justify-content: center; gap: 14px; order: 3; }
  .main-nav a { font-size: 13px; }
  .header-actions { margin-left: auto; gap: 8px; }
  .city-block { max-width: 100%; padding: 5px 9px; gap: 6px; }
  .city-phone { display: none; }
  .city-select { max-width: 150px; font-size: 13px; }
  .section { padding: 30px 14px; }
  .hero { padding: 38px 14px; gap: 28px; }
  .hero-content { min-width: 0; width: 100%; }
  .hero-content h1 { font-size: 30px; }
  .hero-actions .btn { width: 100%; }
  .hero-visual { width: 150px; height: 150px; font-size: 68px; margin: 0 auto; }
  .products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .product-image { height: 170px; }
  .product-info { padding: 12px; }
  .product-info h3 { font-size: 15px; }
  .product-actions { gap: 6px; }
  .product-actions .btn-sm { padding: 7px 10px; font-size: 12px; flex: 1; }
  .product-actions .btn-icon { flex: 0 0 38px; }
  .product-detail-grid { gap: 24px; }
  .product-detail-image { height: min(78vw, 340px); }
  .product-detail-info h1 { font-size: 27px; }
  .product-detail-actions .btn { width: 100%; }
  .category-chips { gap: 7px; }
  .chip { padding: 7px 12px; font-size: 12px; }
  .cart-item { grid-template-columns: 56px minmax(0,1fr); gap: 10px; }
  .cart-item-image { width: 56px; height: 56px; }
  .cart-item-total, .cart-item .qty-controls, .cart-item .btn-danger { grid-column: 2; }
  .admin-section { padding-left: 14px; padding-right: 14px; }
  .admin-product-row { grid-template-columns: 56px minmax(0,1fr); }
  .admin-product-actions { grid-column: 1 / -1; justify-content: flex-end; }
  .image-editor-controls-row { flex-wrap: wrap; }
  .image-editor-controls-row input[type="range"] { order: 3; flex-basis: 100%; }
  .image-editor-preview { height: min(72vw, 320px); }
}

@media (max-width: 380px) {
  .products-grid { grid-template-columns: 1fr; }
  .product-image { height: 210px; }
  .main-nav { gap: 10px; }
  .main-nav a { font-size: 12px; }
}

@media (hover: none) {
  .product-card:hover { transform: none; box-shadow: none; }
  .product-card:hover .product-image { background-size: cover; }
}

/* YummyPack edible bouquet home / mobile polish */
.hero-actions{display:flex;align-items:center;gap:14px;flex-wrap:nowrap}
.hero-content{max-width:900px}
.hero-visual{display:none!important}
@media(max-width:600px){
  .hero{display:block!important;padding:34px 14px!important}
  .hero-actions{width:100%;gap:8px;flex-wrap:nowrap}
  .hero-actions .btn{width:auto!important;flex:1;min-width:0;padding:12px 10px;font-size:13px}
  .hero-content h1{font-size:29px}
  .hero-eyebrow{font-size:12px}
  .section-head{gap:10px}
  .section-head h2{font-size:24px}
  .products-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .product-image,.image-stage{height:160px!important}
  .product-card{min-width:0;overflow:hidden}
  .product-info{min-width:0}
  .product-info h3{overflow-wrap:anywhere}
}
@media(max-width:380px){.products-grid{grid-template-columns:1fr}.hero-actions .btn{font-size:12px;padding:11px 8px}}
.sbp-button{border:0;background:#2f6fed;color:#fff}.sbp-button:hover{filter:brightness(.96)}
.payment-card{max-width:520px;margin:40px auto;padding:32px;border-radius:24px;background:var(--card);box-shadow:var(--shadow);text-align:center}.payment-card h1{margin:8px 0}.payment-card h2{font-size:30px;margin:12px 0 20px}.payment-qr{display:block;width:min(320px,80vw);height:auto;margin:20px auto;border-radius:16px;background:#fff;padding:10px}.payment-card .btn{margin-top:10px}
.admin-orders-list{display:grid;gap:12px}.admin-order-row{display:flex;justify-content:space-between;gap:20px;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.admin-order-row>div:first-child{display:grid;gap:4px}.admin-order-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:150px}.admin-order-side select{padding:9px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text)}
@media(max-width:700px){.admin-order-row{flex-direction:column}.admin-order-side{align-items:stretch}.payment-card{margin:20px 0;padding:22px}.payment-qr{width:min(280px,78vw)}}
.order-track-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:24px}.order-status{display:inline-flex;align-items:center;padding:10px 14px;border-radius:999px;font-weight:700;background:var(--surface-2,#f3f3f3)}.status-new{color:#9a6700}.status-paid{color:#167c3a}.status-processing{color:#1769aa}.status-completed{color:#167c3a}.status-cancelled{color:#a12b2b}.order-total{font-size:1.1rem;border-top:1px solid var(--border,#ddd);margin-top:14px;padding-top:14px}.cart-summary .btn{margin-bottom:10px}.admin-order-side{display:flex;gap:8px;align-items:center;flex-wrap:wrap}@media(max-width:700px){.order-track-head{flex-direction:column}.admin-order-side{align-items:stretch}.admin-order-side select,.admin-order-side .btn{width:100%}.nav-order{display:none}}

/* Мобильная плавающая кнопка отслеживания заказа — в стиле приложения */
.mobile-order-fab{
  display:none;
}
@media (max-width:700px){
  .mobile-order-fab{
    position:fixed;
    right:16px;
    bottom:calc(16px + env(safe-area-inset-bottom));
    z-index:90;
    display:inline-flex;
    align-items:center;
    gap:9px;
    min-height:54px;
    padding:7px 16px 7px 8px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:30px;
    background:var(--accent);
    color:#fff;
    text-decoration:none;
    box-shadow:0 8px 28px rgba(0,0,0,.20);
    font-weight:700;
    font-size:14px;
    -webkit-tap-highlight-color:transparent;
    transition:transform .18s ease,box-shadow .18s ease;
  }
  .mobile-order-fab:active{transform:scale(.96);box-shadow:0 5px 18px rgba(0,0,0,.18);}
  .mobile-order-fab-icon{
    width:40px;height:40px;
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.18);
    font-size:17px;
    flex-shrink:0;
  }
  .mobile-order-fab-text{white-space:nowrap;}
  body{padding-bottom:8px;}
}

@media(max-width:700px){.catalog-toolbar{align-items:stretch}.catalog-sort{width:100%;min-width:0}.catalog-sort select{width:100%}}

.image-upload-zone{border:2px dashed var(--border,#ddd);border-radius:14px;min-height:128px;padding:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;text-align:center;background:var(--surface,#fff);transition:border-color .18s,background .18s,transform .18s}
.image-upload-zone:hover,.image-upload-zone:focus-visible,.image-upload-zone.is-dragover{border-color:var(--primary,#7b61ff);background:rgba(123,97,255,.06);outline:none}
.image-upload-zone.is-dragover{transform:scale(1.01)}
.image-upload-icon{font-size:27px;margin-bottom:2px}
.image-upload-zone strong{font-size:15px}.image-upload-zone span,.image-upload-zone small{color:var(--muted,#777);font-size:12px}.image-upload-status{min-height:20px;padding:6px 2px;font-size:12px;color:var(--muted,#777)}.image-upload-status.is-loading{color:var(--primary,#7b61ff)}.image-upload-status.is-success{color:#18864b}.image-upload-status.is-error{color:#c62828}.image-url-fallback{display:block;font-size:12px;color:var(--muted,#777)}.image-url-fallback input{margin-top:5px}
.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.check-chip{display:flex;gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-alt)}.admin-gallery{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.admin-gallery-item{width:76px;height:76px;position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--border)}.admin-gallery-item img{width:100%;height:100%;object-fit:cover}.admin-gallery-item button{position:absolute;right:4px;top:4px;width:22px;height:22px;border:0;border-radius:50%;background:rgba(0,0,0,.65);color:#fff}.mobile-order-fab{display:none}@media(max-width:800px){.mobile-order-fab{display:flex;position:fixed;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:90;align-items:center;gap:9px;background:var(--accent);color:#fff!important;padding:12px 15px;border-radius:28px;box-shadow:0 10px 26px rgba(0,0,0,.18);font-weight:700}.mobile-order-fab-icon{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center}.products-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.header-inner{padding:12px 14px}.main-nav{gap:12px}.city-block{max-width:45vw}.city-select{max-width:45vw}}@media(max-width:440px){.products-grid{grid-template-columns:1fr}.main-nav a:nth-child(3){display:none}.nav-order{display:none}.city-block{background:none;border:0;padding:0}.city-phone{display:none}}

.city-main{display:block}.city-region{display:block;font-size:.78em;color:var(--muted);font-weight:500;line-height:1.2}.city-block{min-width:0;max-width:340px}.city-select{max-width:180px;min-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-head h2{overflow-wrap:anywhere}@media(max-width:800px){.header-inner{display:grid;grid-template-columns:1fr auto;align-items:center}.main-nav{order:3;grid-column:1/-1;gap:12px;justify-content:space-between;width:100%;overflow-x:auto;padding-bottom:2px}.header-actions{justify-self:end}.city-phone{display:none}.city-block{max-width:210px}.city-select{max-width:170px}.hero-content h1{font-size:clamp(27px,8vw,38px)}.section-head h2{max-width:100%}}

.city-main{overflow-wrap:anywhere}.city-region{overflow-wrap:anywhere}.check-chip .city-main,.chip .city-main{display:inline}.check-chip .city-region,.chip .city-region{margin-left:4px}@media(max-width:600px){.city-region{font-size:.74em}.city-block{max-width:195px}.city-select{min-width:105px;max-width:155px}}

/* Fixed city picker: always occupies the same area and opens over content. */
.header-actions{position:relative;flex-shrink:0;display:flex;align-items:center;gap:10px}
.city-picker{position:relative;width:190px;flex:0 0 190px;z-index:80}
.city-picker-trigger{width:100%;min-height:54px;padding:7px 34px 7px 12px;border:1px solid var(--border);border-radius:14px;background:var(--surface-alt);color:var(--text);text-align:left;cursor:pointer;display:flex;flex-direction:column;justify-content:center;position:relative;line-height:1.15}
.city-picker-label{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.25px}
.city-picker-current{font-size:14px;font-weight:700;margin-top:3px;display:block;min-height:18px;max-width:150px;overflow:hidden}
.city-picker-current .city-main{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.city-picker-current .city-region{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.76em}
.city-picker-chevron{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted);transition:transform .18s ease}
.city-picker.is-open .city-picker-chevron{transform:translateY(-50%) rotate(180deg)}
.city-picker-menu{position:absolute;top:calc(100% + 8px);right:0;width:min(330px,80vw);max-height:min(58vh,430px);overflow:auto;padding:7px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(-5px);transition:opacity .16s ease,transform .16s ease,visibility .16s ease}
.city-picker.is-open .city-picker-menu{opacity:1;visibility:visible;transform:none}
.city-picker-option{width:100%;border:0;background:transparent;color:var(--text);padding:10px 12px;border-radius:10px;text-align:left;cursor:pointer;display:block}
.city-picker-option:hover,.city-picker-option:focus-visible{background:var(--accent-light);outline:none}
.city-picker-option .city-main{display:block;font-weight:600}
.city-picker-option .city-region{display:block;color:var(--muted);font-size:.8em;line-height:1.2;margin-top:2px}
@media(max-width:800px){
  .header-inner{grid-template-columns:1fr auto;align-items:center}
  .header-actions{justify-self:end}
  .city-picker{width:165px;flex-basis:165px}
  .city-picker-trigger{min-height:50px;padding-left:10px;padding-right:30px}
  .city-picker-current{max-width:130px;font-size:13px}
  .main-nav{grid-column:1/-1}
}
@media(max-width:440px){
  .header-inner{grid-template-columns:1fr auto}
  .city-picker{width:148px;flex-basis:148px}
  .city-picker-trigger{min-height:48px;border-radius:12px}
  .city-picker-label{font-size:9px}
  .city-picker-current{max-width:112px;font-size:12px}
  .city-picker-menu{width:min(300px,88vw);right:-4px}
}

.city-heading-main,.city-heading-region{display:block}.city-heading-main{line-height:1.15}.city-heading-region{font-size:.62em;line-height:1.15;color:var(--muted);font-family:Inter,sans-serif;font-weight:500;margin-top:4px}.seller-contacts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px}.seller-contact-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.seller-contact-head{display:flex;gap:14px;align-items:flex-start}.seller-avatar{width:48px;height:48px;border-radius:50%;background:var(--accent-light);color:var(--accent-dark);display:flex;align-items:center;justify-content:center;flex:0 0 auto}.seller-contact-card h2{font-size:21px;margin:0 0 8px}.seller-contact-lines{display:flex;flex-direction:column;gap:5px}.seller-contact-lines a{color:var(--text);font-size:14px}.seller-contact-lines a:hover{color:var(--accent)}.seller-cities-title{margin-top:20px;margin-bottom:10px;font-weight:700;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.4px}.seller-cities-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.seller-city{border:1px solid var(--border);border-radius:11px;padding:11px 12px}.seller-city-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-light) inset}.seller-city-name{font-weight:600}.seller-city-name .city-main{display:block}.seller-city-name .city-region{display:block;color:var(--muted);font-size:12px;margin-top:1px}.seller-city-mode{font-size:12px;font-weight:700;margin-top:5px}.seller-city-mode.pickup{color:var(--accent-dark)}.seller-city-mode.delivery{color:var(--muted)}.seller-city-address{font-size:12px;color:var(--muted);margin-top:4px}.contacts-intro{margin-bottom:24px}@media(max-width:700px){.seller-contacts-grid{grid-template-columns:1fr}.seller-contact-card{padding:20px}}

/* YummyPack logos */
.logo-top{display:flex;align-items:center;width:180px;height:46px;flex:0 0 180px;}
.logo-theme-image{display:block;width:100%;height:100%;max-height:46px;object-fit:contain;object-position:left center;}
.footer-logo{display:inline-flex;width:180px;height:45px;align-items:center;}
.footer-logo img{width:100%;height:100%;object-fit:contain;object-position:left center;display:block;}
@media(max-width:800px){.logo-top{width:150px;flex-basis:150px;height:40px;}.logo-theme-image{max-height:40px}.footer-logo{width:160px;height:40px;}}

/* Multi-photo admin/product gallery */
.admin-gallery{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.admin-gallery-item{position:relative;width:116px;height:116px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface-alt);cursor:grab}
.admin-gallery-item:active{cursor:grabbing}
.admin-gallery-item img{width:100%;height:100%;object-fit:cover;display:block}
.admin-gallery-order{position:absolute;left:7px;top:7px;min-width:24px;height:24px;padding:0 6px;border-radius:12px;background:rgba(0,0,0,.65);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.admin-gallery-controls{position:absolute;left:5px;right:5px;bottom:5px;display:flex;gap:4px;justify-content:center}
.admin-gallery-controls button{width:28px;height:28px;border:0;border-radius:8px;background:rgba(0,0,0,.65);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.admin-gallery-controls button:disabled{opacity:.35;cursor:not-allowed}
.admin-gallery-controls button:hover:not(:disabled){background:rgba(0,0,0,.82)}
.product-gallery{min-width:0}
.product-main-gallery{width:100%}
.product-detail-gallery-image{height:420px!important}
.product-detail-gallery-image .image-foreground{width:100%;height:100%;max-width:none!important;max-height:none!important;object-fit:contain}
.product-thumbs{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.product-thumb{width:76px;height:76px;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:var(--surface);cursor:pointer}
.product-thumb.is-active{border-color:var(--accent)}
.product-thumb img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:800px){
  .product-detail-gallery-image{height:min(78vw,340px)!important}
  .admin-gallery-item{width:88px;height:88px}
  .admin-gallery-controls button{width:25px;height:25px;font-size:12px}
}

/* Product image gallery + lightbox */
.card-gallery{position:relative;overflow:hidden;background:var(--surface-alt)}
.card-gallery-link{display:block;width:100%;height:100%}
.card-gallery-track{position:absolute;inset:0}
.card-gallery-slide{position:absolute;inset:0;display:none;align-items:center;justify-content:center;overflow:hidden}
.card-gallery-slide.is-active{display:flex}
.card-gallery-slide .image-blur-bg{position:absolute;inset:-24px;background-size:cover;background-position:center;filter:blur(18px);transform:scale(1.08);opacity:.55}
.card-gallery-slide .image-foreground{position:relative;z-index:1;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;transform:scale(1);}
.card-gallery-arrow,.gallery-arrow{position:absolute;z-index:4;width:36px;height:36px;border:0;border-radius:50%;background:rgba(0,0,0,.48);color:#fff;font-size:30px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(4px)}
.card-gallery-arrow:hover,.gallery-arrow:hover{background:rgba(0,0,0,.68)}
.card-gallery-prev,.gallery-arrow-prev{left:10px;top:50%;transform:translateY(-50%)}
.card-gallery-next,.gallery-arrow-next{right:10px;top:50%;transform:translateY(-50%)}
.card-gallery-counter,.gallery-counter{position:absolute;z-index:4;left:50%;bottom:10px;transform:translateX(-50%);padding:4px 9px;border-radius:12px;background:rgba(0,0,0,.52);color:#fff;font-size:12px;line-height:1}
.product-detail-gallery-image{cursor:zoom-in}
.gallery-zoom-hint{position:absolute;z-index:5;right:10px;bottom:10px;width:36px;height:36px;border:0;border-radius:50%;background:rgba(0,0,0,.48);color:#fff;cursor:pointer}
.product-thumbs{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.product-thumb{width:76px;height:76px;padding:0;border:2px solid transparent;border-radius:10px;background:var(--surface-alt);overflow:hidden;cursor:pointer}
.product-thumb.is-active{border-color:var(--accent)}
.product-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.yp-lightbox-open{overflow:hidden}
.yp-lightbox{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;padding:18px;touch-action:none}
.yp-lightbox-backdrop{position:absolute;inset:0}
.yp-lightbox-content{position:relative;z-index:1;width:min(1200px,100%);height:min(900px,100%);display:flex;align-items:center;justify-content:center}
.yp-lightbox-stage{position:relative;width:min(92vw,1100px);height:min(82vh,780px);overflow:hidden;border-radius:14px;display:flex;align-items:center;justify-content:center;touch-action:none}
.yp-lightbox-image{max-width:92%;max-height:92%;object-fit:contain;transform-origin:center;will-change:transform;user-select:none;-webkit-user-drag:none;cursor:grab}
.yp-lightbox-arrow,.yp-lightbox-close{position:absolute;z-index:4;border:0;color:#fff;background:rgba(0,0,0,.5);cursor:pointer;backdrop-filter:blur(4px)}
.yp-lightbox-arrow{width:46px;height:46px;border-radius:50%;font-size:36px;line-height:1;top:50%;transform:translateY(-50%)}
.yp-lightbox-prev{left:8px}.yp-lightbox-next{right:8px}
.yp-lightbox-close{right:10px;top:8px;width:42px;height:42px;border-radius:50%;font-size:30px;line-height:1}
.yp-lightbox-toolbar{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:24px;background:rgba(0,0,0,.58);color:#fff}
.yp-lightbox-toolbar button{width:34px;height:34px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:22px;cursor:pointer}
.yp-lightbox-counter{position:absolute;top:12px;left:50%;transform:translateX(-50%);padding:5px 10px;border-radius:14px;background:rgba(0,0,0,.5);color:#fff;font-size:13px}
@media(max-width:800px){
 .card-gallery-arrow,.gallery-arrow{width:32px;height:32px;font-size:26px}
 .product-thumb{width:64px;height:64px}
 .yp-lightbox{padding:8px}
 .yp-lightbox-stage{width:100%;height:76vh}
 .yp-lightbox-arrow{width:40px;height:40px;font-size:30px}
 .yp-lightbox-toolbar{bottom:4px}
}

/* Prevent logo/theme flash: reveal only after the correct theme asset is selected. */
.logo-theme-image{visibility:hidden}
.logo-theme-image.is-ready{visibility:visible}

/* Gallery refinements */
.card-gallery{touch-action:pan-y}
.card-gallery-link{touch-action:pan-y}
.product-main-gallery{touch-action:pan-y}
.product-detail-gallery-image .image-foreground{width:100%;height:100%;max-width:100%!important;max-height:100%!important;object-fit:contain}

/* Gallery interaction fixes */
.yp-lightbox-arrow:disabled,
.card-gallery-arrow:disabled{opacity:.22;cursor:not-allowed;pointer-events:none}
.yp-lightbox-stage{touch-action:none}
.yp-lightbox-image{touch-action:none}
.product-availability{margin:10px 0 18px;display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.availability-city{display:inline-flex;padding:5px 9px;border-radius:14px;background:var(--accent-light);color:var(--accent-dark);font-size:12px}
.mobile-grid-switch{display:none}
@media(max-width:800px){
  .mobile-grid-switch{display:flex;align-items:center;gap:7px;margin:0 0 14px;flex-wrap:wrap}
  .mobile-grid-switch span{width:100%;font-size:12px;color:var(--muted)}
  .mobile-grid-switch button{padding:8px 12px;border:1px solid var(--border);border-radius:20px;background:var(--surface);color:var(--text);font-weight:600;cursor:pointer}
  .mobile-grid-switch button.is-active{background:var(--accent);border-color:var(--accent);color:#fff}
  .products-grid[data-mobile-cols="1"]{grid-template-columns:1fr}
  .products-grid[data-mobile-cols="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Fast initial paint and grouped checkout */
#app{min-height:calc(100vh - 150px)}
.page-loader{min-height:420px;display:flex;align-items:center;justify-content:center;padding:40px 24px}
.page-loader-card{width:min(680px,100%);display:flex;flex-direction:column;gap:14px}
.page-loader-line{height:14px;border-radius:10px;background:var(--surface-alt);overflow:hidden;position:relative}
.page-loader-line.wide{width:78%;height:28px}
.page-loader-line.short{width:48%}
.page-loader-line::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);animation:loaderShimmer .55s linear infinite}
@keyframes loaderShimmer{to{transform:translateX(100%)}}
.checkout-city-groups{display:flex;flex-direction:column;gap:18px;margin:18px 0}
.checkout-city-group{background:var(--surface-alt);border:1px solid var(--border);border-radius:14px;padding:16px}
.checkout-city-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.checkout-city-head h3{margin:0;font-size:18px}
.checkout-seller{display:flex;flex-direction:column;gap:3px;color:var(--muted);font-size:13px}
.checkout-seller a{font-weight:600}
.checkout-city-items{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.checkout-city-item{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.checkout-city-note{font-size:13px;color:var(--muted);margin-top:10px}
.checkout-order-info{background:var(--accent-light);color:var(--accent-dark);border-radius:12px;padding:14px 16px;font-size:13px;line-height:1.5}
@media(max-width:700px){.checkout-city-group{padding:14px}.checkout-city-item{font-size:13px}.page-loader{min-height:360px;padding:28px 16px}}

/* Immediate content paint: no delayed slide-in */
.page-shell,.hero,.products-grid,.section{animation:none!important;}

/* Floating messenger */
#ypMessenger{position:relative;z-index:1300}
.yp-chat-fab{position:fixed;left:18px;bottom:18px;width:54px;height:54px;border:0;border-radius:50%;background:var(--accent);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;font-size:21px;cursor:pointer}
.yp-chat-fab:hover{transform:translateY(-1px)}
.yp-chat-badge{position:absolute;right:-2px;top:-3px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.yp-chat-panel{position:fixed;left:18px;bottom:84px;width:min(360px,calc(100vw - 36px));height:min(520px,calc(100vh - 110px));background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:0 16px 50px rgba(0,0,0,.22);overflow:hidden}
.yp-chat-header{height:54px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;background:var(--surface-alt);border-bottom:1px solid var(--border);cursor:move;user-select:none}
.yp-chat-head-actions{display:flex;gap:4px}.yp-chat-head-actions button{width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:var(--text);font-size:22px;cursor:pointer}
.yp-chat-tabs{display:flex;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border)}.yp-chat-tabs button{flex:1;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:18px;padding:7px 8px;font-size:12px;font-weight:600;cursor:pointer}.yp-chat-tabs button.is-active{background:var(--accent);border-color:var(--accent);color:#fff}
.yp-chat-body{height:calc(100% - 54px);display:flex;flex-direction:column}.yp-chat-list{overflow:auto;padding:9px}.yp-chat-intro{padding:8px 6px 10px;color:var(--muted);font-size:12px;line-height:1.45}
.yp-chat-list-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px;border:0;border-radius:12px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.yp-chat-list-item:hover{background:var(--surface-alt)}.yp-chat-avatar{width:38px;height:38px;flex:0 0 38px;border-radius:50%;background:var(--accent-light);color:var(--accent-dark);display:flex;align-items:center;justify-content:center}.yp-chat-list-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.yp-chat-list-copy strong{font-size:13px}.yp-chat-list-copy small{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.yp-chat-arrow{font-size:20px;color:var(--muted)}
.yp-chat-thread{height:100%;display:flex;flex-direction:column}.yp-chat-thread-top{display:flex;align-items:center;gap:8px;padding:9px 10px;border-bottom:1px solid var(--border);background:var(--surface-alt)}.yp-chat-thread-top>button{width:32px;height:32px;border:0;border-radius:50%;background:var(--surface);color:var(--text);font-size:22px;cursor:pointer}.yp-chat-thread-top>div{min-width:0;flex:1;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.yp-chat-thread-top strong{font-size:13px}.yp-chat-thread-top small{width:100%;font-size:10px;color:var(--muted)}.yp-chat-call{color:var(--accent);margin-left:auto}
.yp-chat-messages{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:7px}.yp-chat-message{max-width:84%;padding:8px 10px;border-radius:13px;font-size:13px;line-height:1.4}.yp-chat-message.is-own{align-self:flex-end;background:var(--accent-light);color:var(--text);border-bottom-right-radius:4px}.yp-chat-message.is-incoming{align-self:flex-start;background:var(--surface-alt);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.06)}.yp-chat-message.is-system{align-self:center;background:var(--accent-light);color:var(--accent-dark);max-width:92%;text-align:center;font-size:12px}.yp-chat-message time{display:block;margin-top:3px;font-size:9px;opacity:.62}.yp-chat-compose{display:flex;gap:7px;padding:9px;border-top:1px solid var(--border);background:var(--surface)}.yp-chat-compose input{min-width:0;flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:20px;background:var(--bg);color:var(--text);font-size:13px}.yp-chat-compose button{width:40px;height:40px;border:0;border-radius:50%;background:var(--accent);color:#fff;cursor:pointer}.yp-chat-compose button:disabled{opacity:.5}.yp-chat-empty{text-align:center;padding:22px 10px;color:var(--muted);font-size:12px}
@media(max-width:600px){.yp-chat-fab{left:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:50px;height:50px}.yp-chat-panel{left:8px;bottom:70px;width:calc(100vw - 16px);height:min(72vh,520px);max-height:calc(100vh - 86px);border-radius:16px}.yp-chat-list{padding:7px}.yp-chat-message{max-width:90%}}

/* Messenger two-pane layout */
.yp-chat-panel{display:flex;flex-direction:column}
.yp-chat-tabs{flex:0 0 auto}
.yp-chat-layout{display:flex;min-height:0;flex:1;overflow:hidden}
.yp-chat-list{width:38%;min-width:145px;max-width:190px;flex:0 0 38%;border-right:1px solid var(--border);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.yp-chat-thread{min-width:0;flex:1;overflow:hidden}
.yp-chat-messages{overscroll-behavior:contain;touch-action:pan-y}
.yp-chat-compose{flex:0 0 auto}
.yp-chat-badge[hidden]{display:none!important}
@media(max-width:600px){
  .yp-chat-layout{display:block}
  .yp-chat-list{width:100%;max-width:none;height:100%;border-right:0}
  .yp-chat-thread{height:100%;width:100%}
}

/* Messenger usability refinements */
.mobile-order-fab{position:fixed;display:flex;align-items:center;justify-content:center;gap:8px;z-index:1200}
.mobile-order-badge{position:absolute;right:-2px;top:-2px;width:13px;height:13px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px var(--surface)}
.yp-chat-fab{touch-action:manipulation}
.yp-chat-panel{will-change:auto}
.yp-chat-list-item{min-height:58px}
.yp-chat-list-copy strong{overflow-wrap:anywhere}
@media(max-width:600px){
  .yp-chat-panel{height:min(78vh,620px);max-height:calc(100vh - 82px)}
  .yp-chat-header{cursor:default}
  .yp-chat-list{padding-bottom:20px}
  .yp-chat-thread-top{min-height:52px}
  .yp-chat-compose{padding-bottom:calc(9px + env(safe-area-inset-bottom))}
}

/* Mobile/desktop floating action buttons: equal size and stable alignment */
.mobile-order-fab, .yp-chat-fab { box-sizing:border-box; height:52px; min-height:52px; }
.mobile-order-fab { min-width:142px; padding:0 15px; }
.yp-chat-fab { width:52px; min-width:52px; padding:0; }
.mobile-order-fab-icon { width:30px; height:30px; flex:0 0 30px; }
@media(max-width:600px){
  .mobile-order-fab { height:50px; min-height:50px; min-width:50px; width:50px; padding:0; border-radius:50%; gap:0; }
  .mobile-order-fab-text { display:none; }
  .mobile-order-fab-icon { width:30px; height:30px; }
  .yp-chat-fab { width:50px; min-width:50px; height:50px; min-height:50px; }
  .yp-chat-fab, .mobile-order-fab { bottom:calc(12px + env(safe-area-inset-bottom)); }
  .mobile-order-fab { right:12px; }
  .yp-chat-fab { left:12px; }
}
/* Final messenger layout: list + thread, isolated scrolling, touch-friendly controls. */
.yp-chat-panel{width:min(700px,calc(100vw - 36px));height:min(560px,calc(100vh - 100px));display:flex;flex-direction:column;overflow:hidden;}
.yp-chat-header{flex:0 0 54px;box-sizing:border-box;}
.yp-chat-header>button{width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--text);font-size:24px;cursor:pointer;}
.yp-chat-layout{min-height:0;flex:1;display:grid;grid-template-columns:220px minmax(0,1fr);overflow:hidden;}
.yp-chat-list{min-width:0;min-height:0;height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border-right:1px solid var(--border);}
.yp-chat-thread{min-width:0;min-height:0;height:100%;overflow:hidden;display:flex;flex-direction:column;}
.yp-chat-thread-top{flex:0 0 auto;min-height:52px;box-sizing:border-box;}
.yp-chat-messages{min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;}
.yp-chat-compose{flex:0 0 auto;min-height:58px;box-sizing:border-box;}
.yp-chat-compose input{min-height:40px;box-sizing:border-box;}
.yp-chat-compose button{flex:0 0 40px;}
.yp-chat-customer-empty{padding:30px 18px;color:var(--muted);font-size:13px;line-height:1.5;text-align:center;}
@media(max-width:600px){
  .yp-chat-panel{left:8px;width:calc(100vw - 16px);height:min(78vh,620px);max-height:calc(100vh - 82px);}
  .yp-chat-layout{display:block;position:relative;}
  .yp-chat-list{border-right:0;width:100%;}
  .yp-chat-thread{position:absolute;inset:0;background:var(--surface);z-index:2;}
  .yp-chat-list-item{min-height:62px;padding:11px 12px;}
  .yp-chat-compose{padding:8px 9px calc(8px + env(safe-area-inset-bottom));}
  .yp-chat-compose input{font-size:16px;}
  .yp-chat-compose button{width:42px;height:42px;flex-basis:42px;}
  .yp-chat-messages{padding:12px;}
}

/* Messenger: hidden means genuinely hidden; two-pane layout is always available. */
.yp-chat-panel[hidden]{display:none!important}
.yp-chat-layout{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:0;flex:1;overflow:hidden}
.yp-chat-list{min-width:0;min-height:0;height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border-right:1px solid var(--border)}
.yp-chat-list-title{padding:10px 12px 7px;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.yp-chat-list-empty{padding:28px 16px;color:var(--muted);font-size:12px;line-height:1.5;text-align:center}
.yp-chat-thread-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:24px;text-align:center;color:var(--muted)}
.yp-chat-thread-empty i{font-size:30px;opacity:.65}.yp-chat-thread-empty strong{color:var(--text);font-size:14px}.yp-chat-thread-empty span{font-size:12px;line-height:1.45;max-width:230px}
.yp-chat-messages{min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}
.yp-chat-compose{flex:0 0 auto}.yp-chat-list-item{touch-action:manipulation}
@media(max-width:600px){
  .yp-chat-panel{left:8px;width:calc(100vw - 16px);height:min(78vh,620px);max-height:calc(100vh - 82px)}
  .yp-chat-layout{display:block;position:relative}
  .yp-chat-list{width:100%;height:100%;border-right:0}
  .yp-chat-thread{position:absolute;inset:0;background:var(--surface);z-index:2}
  .yp-chat-thread-empty{min-height:100%}
  .yp-chat-list-item{min-height:62px;padding:11px 12px}
  .yp-chat-compose{padding:8px 9px calc(8px + env(safe-area-inset-bottom))}
  .yp-chat-compose input{font-size:16px;min-height:42px}
  .yp-chat-compose button{width:42px;height:42px;flex-basis:42px}
}
/* Messenger final two-pane layout: exactly 50/50. */
.yp-chat-panel{width:min(820px,calc(100vw - 24px));height:min(600px,calc(100vh - 80px));display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}
.yp-chat-header{height:54px;min-height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--border);box-sizing:border-box}
.yp-chat-header>button{width:34px!important;height:34px!important;border:0;border-radius:50%;background:transparent;color:var(--text);font-size:25px;cursor:pointer}
.yp-chat-layout{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-template-rows:1fr;flex:1;min-height:0;overflow:hidden}
.yp-chat-sidebar{grid-column:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--border);background:var(--surface)}
.yp-chat-tabs{display:flex;flex:0 0 auto;gap:0;margin:10px;border:1px solid var(--border);border-radius:10px;padding:3px;background:var(--surface-alt);box-sizing:border-box;overflow:hidden}
.yp-chat-tabs[hidden]{display:none!important}
.yp-chat-tabs button{flex:1;min-width:0;height:34px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}
.yp-chat-tabs button.is-active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.yp-chat-tabs button[hidden]{display:none!important}
.yp-chat-list{width:100%;min-width:0;min-height:0;height:auto!important;flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border:0!important}
.yp-chat-list-title{padding:10px 12px 7px;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.yp-chat-list-item{width:100%;box-sizing:border-box;text-align:left;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);display:flex;align-items:center;gap:10px;padding:11px 12px;min-height:64px;cursor:pointer;touch-action:manipulation}
.yp-chat-list-item:hover{background:var(--surface-alt)}
.yp-chat-avatar{width:38px;height:38px;flex:0 0 38px;border-radius:50%;background:var(--accent-light);color:var(--accent-dark);display:flex;align-items:center;justify-content:center}
.yp-chat-list-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
.yp-chat-list-copy strong,.yp-chat-list-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.yp-chat-list-copy small{color:var(--muted);font-size:11px}
.yp-chat-thread{grid-column:2;grid-row:1;min-width:0;min-height:0;height:100%;overflow:hidden;display:flex;flex-direction:column;background:var(--surface)}
.yp-chat-thread-empty{height:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:24px;text-align:center;color:var(--muted)}
.yp-chat-thread-empty strong{color:var(--text);font-size:14px}.yp-chat-thread-empty span{font-size:12px;line-height:1.45;max-width:250px}
.yp-chat-thread-top{height:54px;min-height:54px;display:flex;align-items:center;gap:10px;padding:0 10px;border-bottom:1px solid var(--border);box-sizing:border-box}
.yp-chat-thread-top>[data-chat-back]{width:34px;height:34px;flex:0 0 34px;border:0;border-radius:50%;background:transparent;color:var(--text);font-size:27px;line-height:1;cursor:pointer}
.yp-chat-thread-name{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.yp-chat-thread-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yp-chat-thread-name small{color:var(--muted);font-size:11px}
.yp-chat-call{width:34px;height:34px;flex:0 0 34px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text);text-decoration:none}
.yp-chat-messages{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:12px;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}
.yp-chat-compose{flex:0 0 auto;display:flex;gap:8px;padding:9px;border-top:1px solid var(--border);box-sizing:border-box}
.yp-chat-compose input{flex:1;min-width:0;min-height:42px;padding:9px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);font:inherit;font-size:14px;box-sizing:border-box}
.yp-chat-compose button{width:42px!important;height:42px!important;flex:0 0 42px;border:0;border-radius:10px;background:var(--accent);color:#fff;cursor:pointer}
.yp-chat-compose button:disabled{opacity:.6;cursor:default}
.yp-chat-panel[hidden]{display:none!important}
@media(max-width:600px){
 .yp-chat-panel{left:8px!important;right:auto!important;top:auto!important;bottom:calc(72px + env(safe-area-inset-bottom))!important;width:calc(100vw - 16px)!important;height:min(78vh,620px)!important;max-height:calc(100vh - 90px)!important}
 .yp-chat-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
 .yp-chat-tabs{padding:8px}.yp-chat-tabs button{height:40px;font-size:12px}
 .yp-chat-list-item{min-height:58px;padding:9px 8px;gap:8px}.yp-chat-avatar{width:34px;height:34px;flex-basis:34px}
 .yp-chat-thread-top{padding:0 7px}.yp-chat-messages{padding:9px}.yp-chat-compose{padding:7px 7px calc(7px + env(safe-area-inset-bottom))}
 .yp-chat-compose input{font-size:16px}.yp-chat-compose button{width:42px!important;height:42px!important;flex-basis:42px}
}


/* Messenger: strict two equal panes and centered empty state. */
.messenger-shell .messenger-body { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; }
.messenger-shell .messenger-list-pane, .messenger-shell .messenger-thread-pane { min-width:0 !important; width:100% !important; }
.messenger-shell .messenger-thread-empty { display:flex !important; align-items:center !important; justify-content:center !important; text-align:center !important; min-height:100% !important; padding:32px !important; box-sizing:border-box !important; }
@media (max-width:700px){
  .messenger-shell .messenger-body { grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; }
}

/* v6 messenger: one unified category switch */
.yp-chat-tabs{display:block!important;padding:3px!important}
.yp-chat-tabs button[data-chat-tab-toggle]{display:block!important;width:100%!important;height:36px!important;border:0!important;border-radius:8px!important;background:var(--surface)!important;color:var(--text)!important;box-shadow:0 1px 3px rgba(0,0,0,.08)!important}

/* v7 messenger: category control is a single switch, never two side-by-side cells. */
.yp-chat-tabs{display:block!important;width:auto!important;margin:10px!important;padding:0!important;border:0!important;background:transparent!important;overflow:visible!important}
.yp-chat-tabs button[data-chat-tab-toggle]{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:40px!important;box-sizing:border-box!important;border:1px solid var(--border)!important;border-radius:10px!important;background:var(--surface-alt)!important;color:var(--text)!important;box-shadow:none!important}
.yp-chat-tabs button[data-chat-tab-toggle]:active{background:var(--surface)!important}

/* v8 messenger: the category control is part of the single left pane, not a second pane. */
.yp-chat-sidebar{box-sizing:border-box}
.yp-chat-tabs{display:block!important;margin:0!important;padding:8px 10px!important;border:0!important;border-bottom:1px solid var(--border)!important;background:var(--surface)!important;overflow:visible!important}
.yp-chat-tabs button[data-chat-tab-toggle]{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:38px!important;box-sizing:border-box!important;border:1px solid var(--border)!important;border-radius:9px!important;background:var(--surface-alt)!important;color:var(--text)!important;box-shadow:none!important}
.yp-chat-tabs button[data-chat-tab-toggle]:hover{background:var(--surface-alt)!important}

/* Message actions: edit/delete only for the current user's own messages. */
.yp-chat-message{position:relative}
.yp-chat-message-actions{display:flex;justify-content:flex-end;gap:3px;margin-top:4px;opacity:.72}
.yp-chat-message-actions button{width:24px;height:22px;padding:0;border:0;border-radius:6px;background:transparent;color:inherit;cursor:pointer;font-size:11px}
.yp-chat-message-actions button:hover{background:rgba(0,0,0,.08);opacity:1}
.yp-chat-message-actions button:disabled{opacity:.45;cursor:default}
.yp-chat-message.is-incoming .yp-chat-message-actions{display:none}
.yp-chat-message-body{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:600px){
 .yp-chat-tabs{padding:7px 8px!important}
 .yp-chat-tabs button[data-chat-tab-toggle]{height:40px!important}
 .yp-chat-message-actions{opacity:.8}
}

/* v10 messenger mobile: one pane at a time, comfortable reading and visible own-message actions. */
.yp-chat-message-meta{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:3px}
.yp-chat-message-meta time{margin-top:0}
.yp-chat-message-actions{display:flex!important;align-items:center;gap:4px;margin:0;opacity:.9}
.yp-chat-message-actions button{width:28px!important;height:28px!important;min-width:28px!important;padding:0!important;border:1px solid var(--border)!important;border-radius:7px!important;background:var(--surface)!important;color:var(--text)!important;font-size:11px!important;display:flex!important;align-items:center;justify-content:center;touch-action:manipulation}
.yp-chat-message-actions button:hover{background:var(--surface-alt)!important}
@media(max-width:600px){
  .yp-chat-panel{left:8px!important;right:8px!important;width:auto!important;bottom:calc(70px + env(safe-area-inset-bottom))!important;height:min(82vh,680px)!important;max-height:calc(100dvh - 88px)!important;border-radius:16px!important}
  .yp-chat-layout{display:block!important;position:relative!important;grid-template-columns:none!important}
  .yp-chat-sidebar{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border-right:0!important;display:flex!important}
  .yp-chat-thread{display:none!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;z-index:5!important;background:var(--surface)!important}
  .yp-chat-panel.yp-has-thread .yp-chat-thread{display:flex!important}
  .yp-chat-tabs{padding:9px!important}
  .yp-chat-tabs button[data-chat-tab-toggle]{height:42px!important;font-size:14px!important}
  .yp-chat-list{flex:1!important;height:auto!important;padding:4px!important;overflow-y:auto!important}
  .yp-chat-list-item{min-height:64px!important;padding:11px 10px!important;gap:10px!important}
  .yp-chat-avatar{width:40px!important;height:40px!important;flex-basis:40px!important}
  .yp-chat-list-copy strong{font-size:14px!important;white-space:normal!important;overflow-wrap:anywhere!important;line-height:1.25!important}
  .yp-chat-list-copy small{font-size:12px!important;white-space:normal!important;line-height:1.3!important;overflow-wrap:anywhere!important}
  .yp-chat-thread-top{height:58px!important;min-height:58px!important;padding:0 8px!important}
  .yp-chat-thread-top>[data-chat-back]{width:40px!important;height:40px!important;flex-basis:40px!important;font-size:30px!important}
  .yp-chat-thread-name strong{font-size:14px!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .yp-chat-thread-name small{font-size:11px!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .yp-chat-messages{padding:10px 8px!important;gap:8px!important;overscroll-behavior:contain!important;touch-action:pan-y!important}
  .yp-chat-message{max-width:88%!important;font-size:14px!important;line-height:1.45!important;padding:9px 10px!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  .yp-chat-message-actions button{width:32px!important;height:30px!important;min-width:32px!important;font-size:12px!important}
  .yp-chat-compose{padding:8px!important;padding-bottom:calc(8px + env(safe-area-inset-bottom))!important;gap:7px!important}
  .yp-chat-compose input{min-height:44px!important;height:44px!important;font-size:16px!important;border-radius:12px!important}
  .yp-chat-compose button{width:44px!important;height:44px!important;flex-basis:44px!important;border-radius:12px!important}
}

/* Reliable inline icons: do not depend on Font Awesome loading on mobile. */
.yp-inline-icon{display:inline-block;width:1.05em;height:1.05em;flex:0 0 auto;vertical-align:-0.16em;pointer-events:none;}
.icon-btn .yp-inline-icon{width:18px;height:18px;vertical-align:middle;}
.mobile-order-fab-icon .yp-inline-icon,.yp-chat-fab .yp-inline-icon{width:20px;height:20px;vertical-align:middle;}
.yp-chat-avatar .yp-inline-icon{width:19px;height:19px;}
.yp-chat-call .yp-inline-icon,.yp-chat-compose .yp-inline-icon{width:18px;height:18px;}
@media(max-width:600px){.icon-btn .yp-inline-icon{width:18px;height:18px}.mobile-order-fab-icon .yp-inline-icon,.yp-chat-fab .yp-inline-icon{width:19px;height:19px}}

/* v12 icon assets: fixed dimensions on every device */
.yp-icon-image{display:inline-block!important;width:18px!important;height:18px!important;max-width:18px!important;max-height:18px!important;object-fit:contain;vertical-align:middle!important;flex:0 0 18px!important;}
.city-picker-chevron{width:14px!important;height:14px!important;max-width:14px!important;max-height:14px!important;}
.yp-chat-fab .yp-icon-image{width:20px!important;height:20px!important;max-width:20px!important;max-height:20px!important;flex-basis:20px!important;}
.yp-chat-compose .yp-icon-image{width:18px!important;height:18px!important;max-width:18px!important;max-height:18px!important;}
.yp-chat-thread-top>button .yp-icon-image{width:17px!important;height:17px!important;max-width:17px!important;max-height:17px!important;flex-basis:17px!important;}
/* Desktop uses the same step-by-step messenger as mobile: one view at a time. */
.yp-chat-layout{display:block!important;}
.yp-chat-list{width:100%!important;max-width:none!important;height:100%;border-right:0!important;}
.yp-chat-thread{display:none!important;width:100%!important;height:100%;}
.yp-chat-panel.yp-has-thread .yp-chat-list{display:none!important;}
.yp-chat-panel.yp-has-thread .yp-chat-thread{display:flex!important;}
@media(max-width:600px){
  .yp-chat-panel{width:calc(100vw - 16px);left:8px;}
  .yp-chat-list-item{padding:11px 10px;}
  .yp-chat-compose{padding:10px;}
  .yp-chat-compose input{font-size:14px;min-height:40px;}
}

/* v17: stable single-pane messenger on desktop and mobile.
   The sidebar is the only visible view until a chat is opened. */
.yp-chat-layout{display:block!important;position:relative!important;flex:1 1 auto!important;min-height:0!important;height:auto!important;overflow:hidden!important}
.yp-chat-sidebar{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;display:flex!important;flex-direction:column!important;min-width:0!important;min-height:0!important;overflow:hidden!important;border-right:0!important}
.yp-chat-tabs{flex:0 0 auto!important}
.yp-chat-list{display:block!important;width:100%!important;max-width:none!important;min-width:0!important;min-height:0!important;height:auto!important;flex:1 1 auto!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-y!important}
.yp-chat-thread{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;display:none!important;flex-direction:column!important;overflow:hidden!important;background:var(--surface)!important;z-index:2!important}
.yp-chat-panel.yp-has-thread .yp-chat-sidebar{display:none!important}
.yp-chat-panel.yp-has-thread .yp-chat-thread{display:flex!important}
.yp-chat-messages{min-height:0!important;flex:1 1 auto!important;overflow-y:auto!important;overflow-x:hidden!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important}
.yp-chat-compose{flex:0 0 auto!important;position:relative!important;z-index:3!important}
.yp-chat-list-item{position:relative!important;z-index:1!important;pointer-events:auto!important;touch-action:manipulation!important}
@media(min-width:601px){
  .yp-chat-panel{width:min(520px,calc(100vw - 36px))!important;height:min(600px,calc(100vh - 100px))!important}
}
@media(max-width:600px){
  .yp-chat-layout{height:100%!important}
  .yp-chat-list{height:auto!important}
}
.yp-chat-edited{font-size:.72em;opacity:.68;margin-left:.35rem}

/* Selectel/self-hosted admin additions — intentionally reuse the existing YummyPack visual language. */
.seller-admin-form{display:grid;gap:14px}
.seller-admin-list{display:grid;gap:10px;margin-top:18px}
.seller-admin-row{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid var(--border);border-radius:14px;padding:13px 14px;background:var(--surface)}
.seller-admin-row>div:first-child{display:grid;gap:3px;min-width:0}
.seller-admin-row span,.seller-admin-row small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.seller-admin-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.status-pill{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:11px!important;font-weight:700}
.status-pill.is-active{background:rgba(46,160,67,.12);color:#2e7d32!important}.status-pill.is-off{background:rgba(170,50,50,.12);color:#a32d2d!important}
.generated-password-box{margin-top:14px;padding:14px 16px;border-radius:12px;background:var(--accent-light);color:var(--text);word-break:break-word}
.generated-password-box code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;font-size:16px}
.field-counter{font-size:12px;color:var(--muted);text-align:right;margin-top:4px}
.admin-history-note{font-size:12px;color:var(--muted);padding:6px 0}
@media(max-width:700px){.seller-admin-row{flex-direction:column;align-items:stretch}.seller-admin-actions{justify-content:flex-start}.seller-admin-actions .btn{flex:1;min-width:0}.admin-card{padding:20px}}
.admin-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}
.admin-stat{padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-alt);display:grid;gap:4px}.admin-stat strong{font-size:20px}.admin-stat span{font-size:12px;color:var(--muted)}
.admin-stat-table{display:grid;gap:7px;margin:12px 0 16px}.admin-stat-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--border);font-size:13px}.admin-stat-row span:nth-child(2){color:var(--muted)}
@media(max-width:600px){.admin-stats-grid{grid-template-columns:1fr}.admin-stat-row{grid-template-columns:1fr auto}.admin-stat-row strong{grid-column:2;grid-row:1}.admin-stat-row span:nth-child(2){grid-column:1;grid-row:2}}


/* Скрываем нативный file input, оставляя открытие через upload-zone */
.image-upload-zone input[type="file"] {
  display: none !important;
}

/* Сам input является настоящей областью выбора файлов */
.image-upload-zone {
  position: relative;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.image-upload-zone input[type="file"] {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  opacity: 0 !important;
  cursor: pointer !important;
  z-index: 10 !important;
  clip: auto !important;
  clip-path: none !important;
  overflow: hidden !important;
  pointer-events: auto !important;
}

.image-upload-zone > *:not(input[type="file"]) {
  pointer-events: none;
}

/* =========================================================
   MOBILE: НАТИВНЫЙ ВЫБОР ФОТО
   На телефоне input[type=file] является реальной кнопкой.
   Никаких прозрачных оверлеев и JS-click.
   ========================================================= */
@media (max-width: 800px) {
  .image-upload-zone {
    min-height: 74px !important;
    padding: 12px !important;
    display: block !important;
    cursor: default !important;
    touch-action: auto !important;
  }

  .image-upload-zone > *:not(input[type="file"]) {
    display: none !important;
  }

  .image-upload-zone input[type="file"] {
    display: block !important;
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    height: 50px !important;
    min-height: 50px !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid var(--border, #ddd) !important;
    border-radius: 12px !important;
    background: var(--surface, #fff) !important;
    color: var(--text, #222) !important;
    opacity: 1 !important;
    clip: auto !important;
    clip-path: none !important;
    overflow: visible !important;
    pointer-events: auto !important;
    cursor: pointer !important;
    font-size: 14px !important;
  }

  .image-upload-zone input[type="file"]::file-selector-button {
    height: 50px !important;
    margin-right: 10px !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-right: 1px solid var(--border, #ddd) !important;
    background: var(--surface-alt, #f5f5f5) !important;
    color: var(--text, #222) !important;
    font: inherit !important;
    font-weight: 600 !important;
    cursor: pointer !important;
  }

  .image-upload-zone input[type="file"]::-webkit-file-upload-button {
    height: 50px !important;
    margin-right: 10px !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-right: 1px solid var(--border, #ddd) !important;
    background: var(--surface-alt, #f5f5f5) !important;
    color: var(--text, #222) !important;
    font: inherit !important;
    font-weight: 600 !important;
  }
}

@media (max-width: 800px) {
  .image-upload-zone input[type="file"] {
    color: transparent !important;
    font-size: 0 !important;
  }

  .image-upload-zone input[type="file"]::file-selector-button {
    color: var(--text, #222) !important;
    font-size: 14px !important;
  }

  .image-upload-zone input[type="file"]::-webkit-file-upload-button {
    color: var(--text, #222) !important;
    font-size: 14px !important;
  }
}

@media (max-width: 800px) {
  .image-upload-zone input[type="file"] {
    width: 100% !important;
    height: 50px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    font-size: 0 !important;
    color: transparent !important;
  }

  .image-upload-zone input[type="file"]::file-selector-button {
    width: 100% !important;
    height: 50px !important;
    margin: 0 !important;
    padding: 0 18px !important;
    border: 1px solid var(--border, #ddd) !important;
    border-radius: 12px !important;
    background: var(--surface-alt, #f5f5f5) !important;
    color: var(--text, #222) !important;
    font: inherit !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
  }

  .image-upload-zone input[type="file"]::-webkit-file-upload-button {
    width: 100% !important;
    height: 50px !important;
    margin: 0 !important;
    padding: 0 18px !important;
    border: 1px solid var(--border, #ddd) !important;
    border-radius: 12px !important;
    background: var(--surface-alt, #f5f5f5) !important;
    color: var(--text, #222) !important;
    font: inherit !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 800px) {
  .image-upload-zone {
    position: relative !important;
    min-height: 74px !important;
    padding: 12px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .image-upload-zone > *:not(input[type="file"]):not(.mobile-upload-button-label) {
    display: none !important;
  }

  .image-upload-zone .mobile-upload-button-label {
    display: flex !important;
    width: 100% !important;
    height: 50px !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    border: 1px solid var(--border, #ddd) !important;
    border-radius: 12px !important;
    background: var(--surface-alt, #f5f5f5) !important;
    color: var(--text, #222) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    pointer-events: none !important;
    position: relative !important;
    z-index: 1 !important;
  }

  .image-upload-zone input[type="file"] {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0 !important;
    clip: auto !important;
    clip-path: none !important;
    overflow: hidden !important;
    pointer-events: auto !important;
    z-index: 2 !important;
    cursor: pointer !important;
  }
}

@media (max-width: 800px) {
  .image-upload-zone {
    position: relative !important;
    min-height: 74px !important;
    padding: 12px !important;
    display: block !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    font-size: 0 !important;
  }

  .image-upload-zone > *:not(input[type="file"]) {
    display: none !important;
  }

  .image-upload-zone::after {
    content: "Выбрать файлы";
    position: absolute;
    inset: 12px;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    border: 1px solid var(--border, #ddd);
    border-radius: 12px;
    background: var(--surface-alt, #f5f5f5);
    color: var(--text, #222);
    font-size: 14px;
    font-weight: 600;
    pointer-events: none;
  }

  .image-upload-zone input[type="file"] {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0 !important;
    clip: auto !important;
    clip-path: none !important;
    overflow: hidden !important;
    pointer-events: auto !important;
    z-index: 2 !important;
    cursor: pointer !important;
  }
}

/* =========================================================
   HEADER: стабильная шапка на узких телефонах
   Город + тема всегда находятся в одной строке.
   ========================================================= */
@media (max-width: 600px) {
  .header-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 12px !important;
    flex-wrap: nowrap !important;
  }

  .logo-top {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: clamp(105px, 34vw, 140px) !important;
    flex: 0 1 auto !important;
    height: 38px !important;
  }

  .header-actions {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;
    margin-left: 0 !important;
    min-width: 0 !important;
    width: auto !important;
  }

  .city-picker {
    width: clamp(120px, 38vw, 155px) !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: 0 1 auto !important;
  }

  .city-picker-trigger {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    padding: 6px 28px 6px 10px !important;
  }

  .city-picker-current {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .city-picker-current .city-main,
  .city-picker-current .city-region {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .icon-btn {
    flex: 0 0 38px !important;
    width: 38px !important;
    height: 38px !important;
  }

  .main-nav {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    order: 3 !important;
  }
}

/* Совсем узкие телефоны */
@media (max-width: 380px) {
  .header-inner {
    padding-left: 10px !important;
    padding-right: 10px !important;
    gap: 6px !important;
  }

  .logo-top {
    width: 105px !important;
    height: 34px !important;
  }

  .header-actions {
    gap: 6px !important;
  }

  .city-picker {
    width: 124px !important;
    flex: 0 1 124px !important;
  }

  .city-picker-trigger {
    min-height: 46px !important;
    padding-left: 8px !important;
    padding-right: 25px !important;
    border-radius: 11px !important;
  }

  .city-picker-label {
    font-size: 9px !important;
  }

  .city-picker-current {
    font-size: 12px !important;
  }

  .icon-btn {
    flex-basis: 36px !important;
    width: 36px !important;
    height: 36px !important;
  }

  .main-nav {
    gap: 9px !important;
  }
}

/* Контакты должны быть доступны и на самых узких телефонах */
@media (max-width: 600px) {
  .main-nav {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .main-nav::-webkit-scrollbar {
    display: none;
  }

  .main-nav a {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    white-space: nowrap !important;
  }

  .main-nav a:nth-child(3) {
    display: inline-flex !important;
  }
}

/* =========================================================
   МОБИЛЬНАЯ ВЕРХНЯЯ НАВИГАЦИЯ
   ========================================================= */
@media (max-width: 600px) {
  .main-nav {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 14px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .main-nav::-webkit-scrollbar {
    display: none;
  }

  .main-nav a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    font-size: 13px !important;
  }

  /* Убираем иконки из верхнего меню */
  .main-nav .yp-inline-icon {
    display: none !important;
  }

  .main-nav .nav-cart {
    gap: 0 !important;
  }

  /* Заказ сверху на телефоне не показываем */
  .main-nav .nav-order {
    display: none !important;
  }
}

/* На совсем узких экранах чуть уменьшаем расстояния */
@media (max-width: 380px) {
  .main-nav {
    gap: 11px !important;
  }

  .main-nav a {
    font-size: 12px !important;
  }
}

/* Увеличенная зона нажатия для мобильной навигации */
@media (max-width: 600px) {
  .main-nav a {
    min-height: 38px !important;
    padding: 7px 11px !important;
    border: 1px solid var(--border) !important;
    border-radius: 10px !important;
    background: var(--surface-alt) !important;
    box-sizing: border-box !important;
  }

  .main-nav a:active {
    background: var(--accent-light) !important;
    border-color: var(--accent) !important;
  }
}

@media (max-width: 380px) {
  .main-nav a {
    min-height: 36px !important;
    padding: 6px 9px !important;
  }
}

/* Product visibility / scheduled publication */
.product-publish-settings {
  align-items: start;
}

.product-visibility-toggle {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: var(--surface-alt);
  cursor: pointer;
  font-weight: 600;
}

.product-visibility-toggle input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--accent);
}

.field-hint {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.admin-product-meta {
  min-width: 0;
}

.admin-product-meta > span {
  display: block;
}

.admin-product-visibility {
  width: fit-content;
  margin-top: 5px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}

.admin-product-visibility.is-visible {
  background: rgba(46,160,67,.12);
  color: #2e7d32;
}

.admin-product-visibility.is-hidden {
  background: rgba(170,50,50,.12);
  color: #a32d2d;
}

.admin-product-visibility.is-scheduled {
  background: var(--accent-light);
  color: var(--accent-dark);
}

@media (max-width: 600px) {
  .product-publish-settings {
    display: block;
  }

  .product-publish-settings .form-group + .form-group {
    margin-top: 12px;
  }
}

/* Product visibility / scheduled publication */
.product-publish-settings {
  align-items: start;
}

.product-visibility-toggle {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: var(--surface-alt);
  cursor: pointer;
  font-weight: 600;
}

.product-visibility-toggle input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--accent);
}

.field-hint {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.admin-product-visibility {
  width: fit-content;
  margin-top: 5px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}

.admin-product-visibility.is-visible {
  background: rgba(46,160,67,.12);
  color: #2e7d32;
}

.admin-product-visibility.is-hidden {
  background: rgba(170,50,50,.12);
  color: #a32d2d;
}

.admin-product-visibility.is-scheduled {
  background: var(--accent-light);
  color: var(--accent-dark);
}

@media (max-width: 600px) {
  .product-publish-settings {
    display: block;
  }

  .product-publish-settings .form-group + .form-group {
    margin-top: 12px;
  }
}

/* Product visibility / scheduled publication */
.product-publish-settings {
  align-items: start;
}

.product-visibility-toggle {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: var(--surface-alt);
  cursor: pointer;
  font-weight: 600;
}

.product-visibility-toggle input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--accent);
}

.field-hint {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.admin-product-visibility {
  width: fit-content;
  margin-top: 5px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}

.admin-product-visibility.is-visible {
  background: rgba(46,160,67,.12);
  color: #2e7d32;
}

.admin-product-visibility.is-hidden {
  background: rgba(170,50,50,.12);
  color: #a32d2d;
}

.admin-product-visibility.is-scheduled {
  background: var(--accent-light);
  color: var(--accent-dark);
}

@media (max-width: 600px) {
  .product-publish-settings {
    display: block;
  }

  .product-publish-settings .form-group + .form-group {
    margin-top: 12px;
  }
}

.product-category-controls {
  display: grid;
  grid-template-columns: minmax(150px, 0.8fr) minmax(0, 1.2fr);
  gap: 8px;
}

.product-category-controls select,
.product-category-controls input {
  min-width: 0;
}

@media (max-width: 600px) {
  .product-category-controls {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}

/* Сохраняем переносы строк в описании товара */
.product-card-description,
.product-description,
.product-detail-description,
[data-product-description] {
  white-space: pre-line;
}


/* Центральное уведомление о скрытом товаре */
.yp-product-hidden-notice {
  position: fixed;
  z-index: 99999;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -44%) scale(.96);
  width: min(420px, calc(100vw - 32px));
  box-sizing: border-box;
  padding: 26px 28px;
  border-radius: 18px;
  background: rgba(30, 30, 34, .96);
  color: #fff;
  text-align: center;
  box-shadow: 0 20px 70px rgba(0, 0, 0, .35);
  opacity: 0;
  pointer-events: none;
  transition:
    opacity .35s ease,
    transform .35s ease;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.yp-product-hidden-notice.is-visible {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.yp-product-hidden-notice-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 14px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #d9364f;
  color: #fff;
  font-size: 20px;
}

.yp-product-hidden-notice strong {
  display: block;
  font-size: 19px;
  line-height: 1.3;
  margin-bottom: 7px;
}

.yp-product-hidden-notice span {
  display: block;
  font-size: 14px;
  line-height: 1.45;
  opacity: .82;
}

/*
 * В тёмной теме основные кнопки оставляем такими же красными,
 * как в светлой теме, вместо розового варианта.
 */
html[data-theme="dark"] .btn-primary,
body[data-theme="dark"] .btn-primary,
html.theme-dark .btn-primary,
body.theme-dark .btn-primary,
html.dark .btn-primary,
body.dark .btn-primary {
  background: #d9364f !important;
  border-color: #d9364f !important;
  color: #fff !important;
}

html[data-theme="dark"] .btn-primary:hover,
body[data-theme="dark"] .btn-primary:hover,
html.theme-dark .btn-primary:hover,
body.theme-dark .btn-primary:hover,
html.dark .btn-primary:hover,
body.dark .btn-primary:hover {
  background: #c52d45 !important;
  border-color: #c52d45 !important;
  color: #fff !important;
}

@media (max-width: 600px) {
  .yp-product-hidden-notice {
    width: calc(100vw - 24px);
    padding: 23px 20px;
  }

  .yp-product-hidden-notice strong {
    font-size: 17px;
  }
}


/* В тёмной теме основные акцентные элементы остаются такими же красными,
   как и в светлой теме */
html[data-theme="dark"] .yp-chat-fab,
html[data-theme="dark"] .mobile-order-fab,
html[data-theme="dark"] .chip-active,
html[data-theme="dark"] .yp-chat-compose button {
  background: #b5495b !important;
  border-color: #b5495b !important;
  color: #fff !important;
}

html[data-theme="dark"] .yp-chat-fab:hover,
html[data-theme="dark"] .mobile-order-fab:hover,
html[data-theme="dark"] .chip-active:hover,
html[data-theme="dark"] .yp-chat-compose button:hover {
  background: #963c4b !important;
  border-color: #963c4b !important;
  color: #fff !important;
}

html[data-theme="dark"] .footer-admin-link {
  color: #b5495b !important;
}

html[data-theme="dark"] .footer-admin-link:hover {
  color: #963c4b !important;
}


/* Единый цвет основных кнопок в тёмной теме */
html[data-theme="dark"] .btn-primary,
html[data-theme="dark"] .btn-primary:hover,
html[data-theme="dark"] .btn-primary:focus,
html[data-theme="dark"] .btn-primary:active {
  background: #b5495b !important;
  border-color: #b5495b !important;
  color: #fff !important;
}

html[data-theme="dark"] .btn-primary:hover,
html[data-theme="dark"] .btn-primary:focus:hover {
  background: #963c4b !important;
  border-color: #963c4b !important;
}


/* На компьютере без иконок у Корзины и Заказа */
@media (min-width: 801px) {
  .main-nav .nav-cart .yp-inline-icon,
  .main-nav .nav-order .yp-inline-icon {
    display: none !important;
  }
}


/* Выравнивание содержимого карточек товаров по нижнему краю */
.product-card .product-info {
  flex: 1;
  min-height: 0;
}

.product-card .product-actions {
  margin-top: auto;
  display: flex;
  align-items: stretch;
  gap: 10px;
}

.product-card .product-actions .btn-icon {
  flex: 0 0 42px;
  width: 42px;
  min-width: 42px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.product-card .product-actions .btn-sm {
  flex: 1;
  min-width: 0;
}

.product-card .product-price {
  margin: 8px 0 0;
}

@media (max-width: 800px) {
  .product-card .product-actions {
    gap: 6px;
  }

  .product-card .product-actions .btn-icon {
    flex-basis: 38px;
    width: 38px;
    min-width: 38px;
  }
}


/* Цена и кнопки всегда находятся в нижней части карточки */
.product-card .product-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.product-card .product-info h3 {
  margin: 0;
}

.product-card .product-price {
  margin: auto 0 0;
  padding-top: 10px;
  flex-shrink: 0;
}

.product-card .product-actions {
  margin-top: 8px;
  flex-shrink: 0;
}


/* Старая и текущая цена товара */
.product-price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
}

.product-old-price {
  color: var(--muted);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  font-size: .88em;
  font-weight: 500;
  white-space: nowrap;
}

.product-current-price {
  color: var(--accent-dark);
  font-weight: 700;
  white-space: nowrap;
}

.product-price-lg {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px;
}

.product-price-lg .product-old-price {
  font-size: .62em;
}

.admin-old-price {
  color: var(--muted);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  margin-right: 4px;
}

@media (max-width: 600px) {
  .product-old-price {
    font-size: .82em;
  }

  .product-price {
    gap: 6px;
  }
}


.product-image {
  position: relative;
}

.product-promo-badge {
  position: absolute;
  z-index: 8;
  top: 12px;
  left: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 5px 10px;
  border-radius: 9px;
  background: #b5495b;
  color: #fff;
  font-size: 11px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .35px;
  box-shadow: 0 4px 12px rgba(0,0,0,.18);
  pointer-events: none;
}

@media (max-width: 600px) {
  .product-promo-badge {
    top: 8px;
    left: 8px;
    min-height: 27px;
    padding: 4px 8px;
    border-radius: 8px;
    font-size: 10px;
  }
}


/* Акционная карточка */
.product-promo-badge {
  position: absolute;
  z-index: 8;
  top: 12px;
  left: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 5px 11px;
  border-radius: 9px;
  background: #b5495b;
  color: #fff;
  font-size: 12px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .25px;
  box-shadow: 0 4px 12px rgba(0,0,0,.18);
  pointer-events: none;
}

.product-price-sale {
  gap: 2px;
  align-items: flex-start;
}

.product-old-price-row {
  display: flex;
  align-items: baseline;
  gap: 7px;
  min-height: 17px;
}

.product-price .product-old-price {
  display: inline-block;
  margin: 0;
  color: var(--muted);
  font-size: .62em;
  line-height: 1.1;
  font-weight: 500;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  white-space: nowrap;
}

.product-discount {
  display: inline-block;
  color: var(--danger);
  font-size: .68em;
  line-height: 1.1;
  font-weight: 800;
  white-space: nowrap;
}

.product-price .product-current-price {
  display: block;
  font-size: 1em;
  line-height: 1.15;
  color: var(--accent-dark);
  font-weight: 700;
}

.promo-filter-chip {
  font-weight: 700;
}

.promo-filter-chip i {
  font-size: 12px;
}

@media (max-width: 600px) {
  .product-promo-badge {
    top: 8px;
    left: 8px;
    min-height: 27px;
    padding: 4px 9px;
    border-radius: 8px;
    font-size: 10px;
  }

  .product-price .product-old-price {
    font-size: .58em;
  }

  .product-discount {
    font-size: .64em;
  }

  .product-old-price-row {
    gap: 5px;
  }
}


/* Акционная цена: старая цена и скидка сверху, новая цена снизу */
.product-card .product-price.product-price-sale {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 3px;
}

.product-card .product-price-sale .product-old-price-row {
  display: flex;
  align-items: baseline;
  gap: 7px;
  width: 100%;
  min-height: 17px;
}

.product-card .product-price-sale .product-old-price {
  display: inline-block;
  font-size: 11px;
  line-height: 1.1;
  font-weight: 500;
  color: var(--muted);
  text-decoration: line-through;
  white-space: nowrap;
}

.product-card .product-price-sale .product-discount {
  display: inline-block;
  font-size: 11px;
  line-height: 1.1;
  font-weight: 800;
  color: var(--danger);
  white-space: nowrap;
}

.product-card .product-price-sale .product-current-price {
  display: block;
  font-size: 19px;
  line-height: 1.15;
  font-weight: 800;
  color: var(--accent-dark);
  white-space: nowrap;
}

/* На странице товара */
.product-price-lg.product-price-sale {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

.product-price-lg.product-price-sale .product-old-price-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.product-price-lg.product-price-sale .product-old-price {
  font-size: 14px;
}

.product-price-lg.product-price-sale .product-discount {
  font-size: 13px;
}

.product-price-lg.product-price-sale .product-current-price {
  font-size: 28px;
  line-height: 1.1;
  font-weight: 800;
}

@media (max-width: 600px) {
  .product-card .product-price-sale .product-old-price {
    font-size: 10px;
  }

  .product-card .product-price-sale .product-discount {
    font-size: 10px;
  }

  .product-card .product-price-sale .product-current-price {
    font-size: 17px;
  }
}


/* Категории каталога: «Все» отдельно сверху, остальные ниже */
.catalog-category-chips {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
}

.catalog-all-category-row {
  width: 100%;
  display: flex;
  align-items: flex-start;
}

.catalog-all-category-row .chip {
  flex: 0 0 auto;
}

.catalog-other-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  width: 100%;
}

.catalog-other-categories .promo-filter-chip {
  order: -1;
}

@media (max-width: 800px) {
  .catalog-category-chips {
    width: 100%;
  }

  .catalog-other-categories {
    gap: 7px;
  }
}


/* Messenger v18 — unread, admin chat, delivery/read states */

.yp-chat-list-item {
  position: relative;
}

.yp-chat-list-item.has-unread {
  background: color-mix(in srgb, var(--accent-light) 42%, transparent);
}

.yp-chat-list-item.has-unread:hover {
  background: color-mix(in srgb, var(--accent-light) 65%, transparent);
}

.yp-chat-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.yp-chat-list-head strong {
  color: var(--text);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
}

.yp-chat-list-phone {
  color: var(--muted);
  font-size: 10px;
  font-weight: 500;
  white-space: nowrap;
  flex: 0 0 auto;
}

.yp-chat-list-order,
.yp-chat-list-order-date {
  color: var(--muted);
  font-size: 10px;
  white-space: nowrap;
}

.yp-chat-list-message {
  margin-top: 2px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  opacity: .82;
}

.yp-chat-list-unread {
  position: absolute;
  top: 10px;
  right: 10px;
  min-width: 9px;
  height: 9px;
  padding: 0;
  border-radius: 999px;
  background: var(--danger);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  line-height: 18px;
  text-align: center;
  box-shadow: 0 0 0 2px var(--surface);
}

.yp-chat-list-unread:not(:empty) {
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
}

.yp-chat-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 15px;
  margin-left: 1px;
  font-size: 10px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: -1px;
}

.yp-chat-status.is-pending {
  color: var(--muted);
  opacity: .65;
}

.yp-chat-status.is-delivered {
  color: var(--muted);
}

.yp-chat-status.is-read {
  color: var(--accent);
}

.yp-chat-badge {
  box-sizing: border-box;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--danger) !important;
  color: #fff !important;
  font-size: 11px;
  font-weight: 800;
  line-height: 20px;
  box-shadow: 0 0 0 2px var(--surface);
}

@media(max-width:600px){
  .yp-chat-list-head strong {
    font-size: 14px;
  }

  .yp-chat-list-phone {
    font-size: 10px;
  }

  .yp-chat-list-message {
    font-size: 11px;
  }

  .yp-chat-list-unread {
    top: 8px;
    right: 8px;
  }
}

.yp-location-help {
  position: fixed;
  left: 50%;
  bottom: 20px;
  transform: translateX(-50%);
  z-index: 5000;
  width: min(520px, calc(100vw - 28px));
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface);
  color: var(--text);
  box-shadow: 0 12px 40px rgba(0,0,0,.18);
}

.yp-location-help-text {
  min-width: 0;
  flex: 1;
  display: grid;
  gap: 3px;
}

.yp-location-help-text strong {
  font-size: 13px;
}

.yp-location-help-text span {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
}

.yp-location-help button {
  flex: 0 0 auto;
  border: 0;
  border-radius: 9px;
  background: var(--accent);
  color: #fff;
  padding: 9px 12px;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.yp-location-help-close {
  width: 28px;
  height: 28px;
  padding: 0 !important;
  background: transparent !important;
  color: var(--muted) !important;
  font-size: 21px !important;
}

@media(max-width:600px) {
  .yp-location-help {
    bottom: calc(12px + env(safe-area-inset-bottom));
    align-items: flex-start;
    padding: 12px;
  }

  .yp-location-help button:not(.yp-location-help-close) {
    font-size: 11px;
    padding: 8px 9px;
  }
}



/* Первый выбор города */
html.yp-city-modal-open,
html.yp-city-modal-open body {
  overflow: hidden !important;
}

.yp-first-city-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.yp-first-city-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .48);
  backdrop-filter: blur(4px);
}

.yp-first-city-card {
  position: relative;
  z-index: 1;
  width: min(430px, calc(100vw - 32px));
  box-sizing: border-box;
  padding: 30px 26px 26px;
  border: 1px solid var(--border);
  border-radius: 20px;
  background: var(--surface);
  color: var(--text);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .28);
  text-align: center;
}

.yp-first-city-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 14px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--accent-light);
  color: var(--accent-dark);
  font-size: 20px;
}

.yp-first-city-card h2 {
  margin: 0;
  font-size: 24px;
  line-height: 1.2;
}

.yp-first-city-card p {
  margin: 9px 0 20px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.yp-first-city-select {
  width: 100%;
  min-height: 46px;
  box-sizing: border-box;
  padding: 0 13px;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: var(--bg);
  color: var(--text);
  font: inherit;
  font-size: 14px;
  outline: none;
}

.yp-first-city-select:focus {
  border-color: var(--accent);
}

.yp-first-city-button {
  width: 100%;
  margin-top: 12px;
  min-height: 46px;
}

.yp-first-city-button:disabled {
  opacity: .45;
  cursor: default;
}

@media(max-width:600px) {
  .yp-first-city-modal {
    padding: 14px;
  }

  .yp-first-city-card {
    width: min(430px, calc(100vw - 28px));
    padding: 26px 18px 20px;
    border-radius: 18px;
  }

  .yp-first-city-card h2 {
    font-size: 21px;
  }
}


/* Первый выбор города — сгруппированный список */
.yp-first-city-card-grouped {
  width: min(620px, calc(100vw - 28px));
  max-height: min(760px, calc(100vh - 40px));
  display: flex;
  flex-direction: column;
}

.yp-first-city-card-grouped > p {
  flex: 0 0 auto;
}

.yp-first-city-groups {
  min-height: 0;
  overflow-y: auto;
  padding-right: 4px;
  text-align: left;
  overscroll-behavior: contain;
}

.yp-first-city-group {
  margin: 0 0 20px;
}

.yp-first-city-group:last-child {
  margin-bottom: 0;
}

.yp-first-city-group h3 {
  margin: 0 0 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.yp-first-city-options {
  display: grid;
  gap: 3px;
}

.yp-first-city-option {
  width: 100%;
  min-height: 50px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  padding: 8px 11px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  color: var(--text);
  text-align: left;
  font: inherit;
  cursor: pointer;
  transition:
    background .12s ease,
    border-color .12s ease;
}

.yp-first-city-option:hover {
  background: var(--surface-alt);
  border-color: var(--border);
}

.yp-first-city-option:active {
  background: var(--accent-light);
}

.yp-first-city-option-name {
  font-size: 14px;
  font-weight: 650;
  line-height: 1.2;
}

.yp-first-city-option-region {
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.2;
}

@media(max-width:600px) {
  .yp-first-city-card-grouped {
    width: calc(100vw - 24px);
    max-height: calc(100vh - 28px);
    padding: 22px 14px 16px;
  }

  .yp-first-city-groups {
    padding-right: 2px;
  }

  .yp-first-city-group {
    margin-bottom: 17px;
  }

  .yp-first-city-option {
    min-height: 48px;
    padding: 8px 10px;
  }

  .yp-first-city-option-name {
    font-size: 14px;
  }

  .yp-first-city-option-region {
    font-size: 10px;
  }
}

/* Исправление иконки выбора города */
.yp-first-city-icon {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  max-width: 48px !important;
  max-height: 48px !important;
  flex: 0 0 48px !important;
  aspect-ratio: 1 / 1 !important;
  box-sizing: border-box !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  overflow: hidden !important;
}

.yp-first-city-icon i {
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 20px !important;
  line-height: 1 !important;
  transform: none !important;
}



/* YummyPack header city picker grouped list */

.city-picker-menu {
  overflow-y: auto;
}

.city-picker-group {
  padding: 6px 0;
}

.city-picker-group + .city-picker-group {
  border-top: 1px solid var(--border, rgba(127,127,127,.16));
}

.city-picker-group-title {
  padding: 7px 14px 6px;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 700;
  color: var(--muted, #777);
}

.city-picker-option {
  width: 100%;
  min-height: 0;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 2px;
  padding: 9px 14px !important;
  text-align: left !important;
  white-space: normal !important;
}

.city-picker-option-name {
  display: block;
  font-size: 14px;
  line-height: 1.25;
  font-weight: 600;
}

.city-picker-option-region {
  display: block;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 400;
  color: var(--muted, #777);
}


.city-picker-region-item {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 9px 14px;
  box-sizing: border-box;
  cursor: default;
  background: transparent;
}
