
/* Ristorante Smart Menu 1.0.15
   Frontend pulito, ricostruito dal mockup approvato.
   Il font resta quello ereditato dal sito. */

.rsm-app-shell,
.rsm-app-shell *{box-sizing:border-box;font-family:inherit}

.rsm-app-shell{
  --rsm-bg:#f5f3f0;
  --rsm-card:#fff;
  --rsm-text:#121212;
  --rsm-muted:#6f6f73;
  --rsm-border:#e9e7e4;
  --rsm-warm:#fff1df;
  --rsm-orange:#d06b16;
  --rsm-black:#101010;
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:20px;
  width:min(1600px,calc(100% - 24px));
  margin:12px auto;
  padding:14px;
  color:var(--rsm-text);
  background:var(--rsm-bg);
  border-radius:30px;
  overflow:visible;
}

.rsm-app-sidebar{
  position:sticky;
  top:14px;
  height:calc(100vh - 28px);
  min-height:640px;
  display:flex;
  flex-direction:column;
  padding:26px 16px 20px;
  background:#fff;
  border:1px solid rgba(17,17,17,.04);
  border-radius:25px;
  box-shadow:0 16px 45px rgba(35,28,22,.06);
  overflow:hidden;
}

.rsm-brand-mark{text-align:center;color:#552f1d}
.rsm-brand-icon{
  position:relative;
  width:76px;height:62px;
  margin:0 auto 14px;
  border:7px solid #70432b;
  border-bottom-width:10px;
  border-radius:42px 42px 8px 8px;
}
.rsm-brand-icon:before,.rsm-brand-icon:after,.rsm-brand-icon span:before{
  content:"";position:absolute;bottom:8px;border-radius:50% 50% 48% 48%;background:#ef6b20;transform-origin:50% 100%
}
.rsm-brand-icon:before{left:23px;width:20px;height:28px;clip-path:polygon(50% 0,88% 45%,74% 100%,24% 100%,10% 44%)}
.rsm-brand-icon:after{left:31px;width:12px;height:18px;background:#ffb22d;clip-path:polygon(50% 0,92% 50%,72% 100%,24% 100%,8% 48%)}
.rsm-brand-mark strong{display:block;font-size:18px;line-height:1.1}
.rsm-brand-mark small{display:block;margin-top:7px;font-size:9px;letter-spacing:.13em}

.rsm-side-nav{display:grid;gap:8px;margin-top:42px}
.rsm-side-nav a,.rsm-side-bottom a{
  display:flex;align-items:center;gap:12px;
  min-height:50px;padding:10px 14px;
  color:#171717;text-decoration:none;
  border-radius:15px;font-size:14px;font-weight:700;
}
.rsm-side-nav a.active{background:var(--rsm-warm);color:#a45717}
.rsm-nav-icon{position:relative;flex:0 0 22px;width:22px;height:22px}
.rsm-nav-grid:before{content:"";position:absolute;inset:2px;background:linear-gradient(currentColor 0 0) 0 0/7px 7px no-repeat,linear-gradient(currentColor 0 0) 100% 0/7px 7px no-repeat,linear-gradient(currentColor 0 0) 0 100%/7px 7px no-repeat,linear-gradient(currentColor 0 0) 100% 100%/7px 7px no-repeat;border-radius:2px}
.rsm-nav-heart:before{content:"♡";position:absolute;inset:-3px 0 0;font-size:27px;font-weight:400}
.rsm-nav-star:before{content:"☆";position:absolute;inset:-3px 0 0;font-size:26px;font-weight:400}
.rsm-nav-clock{border:1.7px solid currentColor;border-radius:50%}
.rsm-nav-clock:before{content:"";position:absolute;left:10px;top:4px;width:1.7px;height:7px;background:currentColor;transform-origin:bottom}
.rsm-nav-clock:after{content:"";position:absolute;left:10px;top:10px;width:6px;height:1.7px;background:currentColor}
.rsm-nav-help:before{content:"◉";font-size:20px}

.rsm-side-bottom{margin-top:auto;display:grid;gap:8px}
.rsm-side-language{
  display:flex;align-items:center;gap:9px;
  padding:12px 14px;border:1px solid var(--rsm-border);
  border-radius:999px;background:#fff;font-size:14px
}
.rsm-side-language b{margin-left:auto}
.rsm-flag-dot{width:20px;height:20px;border-radius:50%;background:linear-gradient(90deg,#149448 0 33%,#fff 33% 66%,#d82b2b 66%);box-shadow:0 0 0 1px #ddd}

.rsm-wrap{
  min-width:0;
  padding:20px 22px 92px;
  background:#fff;
  border-radius:25px;
  box-shadow:0 16px 45px rgba(35,28,22,.05);
}

.rsm-hero{
  display:flex;align-items:center;min-height:48px;
  padding:0;background:none;border:0;box-shadow:none;color:var(--rsm-text)
}
.rsm-hero>div:first-child,.rsm-hero:before,.rsm-hero:after{display:none}
.rsm-mode-actions{
  width:100%;display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:12px
}
.rsm-language-strip{
  order:-1;margin-right:auto;display:flex;gap:2px;
  padding:4px;background:#f3f3f3;border:1px solid #ededed;border-radius:18px;overflow-x:auto
}
.rsm-language-strip button{
  min-width:45px;height:36px;padding:0 10px;border:0;border-radius:13px;
  background:transparent;color:#666;font-size:11px;font-weight:800;cursor:pointer
}
.rsm-language-strip button.active{background:#fff;color:#111;box-shadow:0 5px 14px rgba(0,0,0,.08)}
.rsm-mode-btn{
  min-height:42px;padding:0 18px;border:0;border-radius:8px;
  background:#111;color:#fff;font-weight:800;cursor:pointer;box-shadow:none
}
.rsm-mode-link{border:0;background:none;color:#161616;font-weight:700;cursor:pointer;text-decoration:none}

.rsm-layout{display:block}
.rsm-cart{display:none}

.rsm-menu-tools{position:relative;padding:16px 0 12px;background:#fff}
.rsm-search{
  display:flex;align-items:center;width:min(820px,100%);height:54px;
  padding:0 17px;background:#f5f5f5;border:1px solid transparent;border-radius:18px
}
.rsm-search:focus-within{border-color:#d9d5d0;background:#fff;box-shadow:0 0 0 4px rgba(208,107,22,.07)}
.rsm-search-icon{position:relative;width:18px;height:18px;margin-right:12px;border:2px solid #8e5d38;border-radius:50%}
.rsm-search-icon:after{content:"";position:absolute;width:7px;height:2px;right:-5px;bottom:-2px;background:#8e5d38;transform:rotate(-45deg);border-radius:2px}
.rsm-search input{width:100%;padding:0!important;margin:0!important;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;color:#333;font-size:16px}

.rsm-tabs{
  display:flex;gap:11px;overflow-x:auto;padding:4px 0 20px;background:#fff;scrollbar-width:none
}
.rsm-tabs::-webkit-scrollbar{display:none}
.rsm-tabs button{
  flex:0 0 93px;height:91px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  padding:8px;border:1px solid var(--rsm-border);border-radius:20px;
  background:#fff;color:#111;font-size:13px;font-weight:700;cursor:pointer
}
.rsm-tabs button.active{background:#fff8ef;border-color:#efbf84;color:#5d3418}
.rsm-tab-icon{display:grid;place-items:center;width:34px;height:34px;color:#66391f}
.rsm-tab-icon svg{width:31px;height:31px}
.rsm-tabs button:not(.active) .rsm-tab-icon{color:#171717}

.rsm-special-filters{padding:0 0 18px}
.rsm-filter-toolbar{display:flex;align-items:center;gap:10px;min-height:44px;overflow-x:auto;scrollbar-width:none}
.rsm-filter-toolbar::-webkit-scrollbar{display:none}
.rsm-filter-toggle,.rsm-active-filter{
  flex:0 0 auto;height:42px;display:inline-flex;align-items:center;gap:9px;
  padding:0 13px;border:1px solid #e8e8e8;border-radius:999px;background:#fff;
  color:#171717;font-size:14px;font-weight:700;cursor:pointer
}
.rsm-filter-toggle b{display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:50%;background:#111;color:#fff;font-size:11px}
.rsm-filter-toggle i{font-style:normal}
.rsm-filter-lines{position:relative;width:18px;height:14px}
.rsm-filter-lines:before,.rsm-filter-lines:after{content:"";position:absolute;left:0;height:2px;background:#111;border-radius:2px}
.rsm-filter-lines:before{top:2px;width:18px;box-shadow:4px 5px 0 #111}
.rsm-filter-lines:after{top:12px;width:8px}
.rsm-active-filter span{color:#2f9e53}
.rsm-active-filter b{font-size:18px;line-height:1}
.rsm-clear-filters{flex:0 0 auto;border:0;background:none;color:#111;text-decoration:underline;font-size:13px;cursor:pointer}

.rsm-filter-panel{
  display:none;margin-top:12px;padding:16px;
  border:1px solid var(--rsm-border);border-radius:18px;background:#fafafa
}
.rsm-filter-panel.open{display:block}
.rsm-switch-row{display:inline-flex;align-items:center;gap:9px;margin:0 0 15px;font-weight:700}
.rsm-switch-row input{width:18px;height:18px;accent-color:#2ea44f}
.rsm-allergy-block h3{margin:0 0 10px;font-size:15px}
.rsm-allergy-chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:5px;scrollbar-width:thin}
.rsm-allergy-chips label{flex:0 0 auto}
.rsm-allergy-chips input{position:absolute;opacity:0}
.rsm-allergy-chips span{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid #e3e3e3;border-radius:999px;background:#fff;font-size:12px;cursor:pointer}
.rsm-allergy-chips input:checked+span{background:#111;color:#fff;border-color:#111}
.rsm-allergy-chips b{font-size:10px}

.rsm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.rsm-card{
  position:relative;overflow:hidden;min-width:0;
  border:1px solid #e9e9e9;border-radius:22px;background:#fff;
  box-shadow:0 8px 24px rgba(20,20,20,.05);transition:.2s ease
}
.rsm-card:hover{transform:translateY(-3px);box-shadow:0 17px 38px rgba(20,20,20,.10)}
.rsm-card-media{position:relative;height:164px;overflow:hidden;background:#f1f1f1}
.rsm-card-media img{display:block;width:100%;height:100%;object-fit:cover}
/* Senza fotografia: fascia compatta e riconoscibile per categoria. */
.rsm-card-media.rsm-card-media-band{height:58px;background:var(--rsm-category-band,#8c8c8c)}
.rsm-card-media.rsm-card-media-band:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.08),rgba(255,255,255,0) 48%,rgba(0,0,0,.05));pointer-events:none}
.rsm-no-image .rsm-card-body{padding-top:15px}
.rsm-fav-btn{
  position:absolute;top:11px;right:11px;z-index:4;width:36px;height:36px;
  display:grid;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.88);cursor:pointer
}
.rsm-heart-icon{position:relative;width:17px;height:15px;transform:rotate(-45deg);border-left:2px solid #222;border-bottom:2px solid #222;border-radius:0 0 0 6px}
.rsm-heart-icon:before,.rsm-heart-icon:after{content:"";position:absolute;border:2px solid #222;border-radius:50%;background:transparent}
.rsm-heart-icon:before{width:9px;height:9px;left:-2px;top:-6px}
.rsm-heart-icon:after{width:9px;height:9px;right:-7px;bottom:-2px}
.rsm-dish-status{
  position:absolute;top:10px;left:10px;z-index:3;
  display:inline-flex;align-items:center;gap:6px;padding:6px 10px;
  border:0;border-radius:999px;color:#fff;font-size:10px;font-weight:800;text-transform:uppercase
}
.rsm-dish-status i{font-style:normal}
.rsm-status-veg{background:#2fa553}.rsm-status-spicy{background:#ec4d25}.rsm-status-frozen{background:#1d9fdf}.rsm-status-special{background:#efa90a}.rsm-status-generic{background:#666}

.rsm-card-body{padding:13px 15px 14px}
.rsm-card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.rsm-card h3{margin:0;color:#111;font-size:18px;line-height:1.16;letter-spacing:-.02em}
.rsm-card .rsm-price{flex:0 0 auto;color:#111;font-size:15px;font-weight:850;white-space:nowrap}
.rsm-card .rsm-desc{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:39px;margin:7px 0 10px;color:#737373;font-size:13px;line-height:1.45
}
.rsm-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}
.rsm-card .rsm-allergens{display:flex;gap:7px;min-height:28px;margin:0}
.rsm-card .rsm-allergen-pill{width:25px;height:25px;display:grid;place-items:center;padding:0;border:1px solid #d7d7d7;border-radius:50%;background:#fff}
.rsm-card .rsm-allergen-pill b{font-size:10px;font-weight:700}
.rsm-card-plus{
  flex:0 0 38px;width:38px;height:38px;border:0;border-radius:50%;
  background:#111;color:#fff;font-size:28px;line-height:34px;cursor:pointer
}
.rsm-card-plus:hover{background:var(--rsm-primary,#111)}
.rsm-card-plus:disabled{opacity:.35}
.rsm-no-results{grid-column:1/-1;padding:35px;text-align:center;border:1px dashed #ddd;border-radius:18px;color:#777}

.rsm-mobile-cart{display:none}
.rsm-mobile-cart.show{
  position:sticky;z-index:30;bottom:10px;
  width:calc(100% - 4px);min-height:76px;
  display:flex;align-items:center;gap:15px;margin:18px 2px 0;padding:11px 18px;
  border:0;border-radius:19px;background:#111;color:#fff;box-shadow:0 22px 50px rgba(0,0,0,.24);cursor:pointer
}
.rsm-cart-bag{font-size:27px}
.rsm-mobile-cart-copy{display:grid;text-align:left}
.rsm-mobile-cart-copy b{font-size:16px}
.rsm-mobile-cart-copy small{margin-top:3px;opacity:.7}
.rsm-mobile-total{margin-left:auto;font-size:23px;font-weight:850}
.rsm-mobile-order-btn{min-width:225px;padding:15px 22px;border-radius:12px;background:#ffc21c;color:#111;font-size:16px;font-weight:850}

.rsm-legend{margin-top:24px;padding:18px;border:1px solid #ececec;border-radius:18px;background:#fafafa}
.rsm-legend h3{margin:0 0 12px}
.rsm-legend>div{display:flex;gap:8px;flex-wrap:wrap}
.rsm-legend span{font-size:12px}.rsm-legend b{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:5px;border:1px solid #d7d7d7;border-radius:50%}

.rsm-modal{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.55);backdrop-filter:blur(7px)}
.rsm-modal.open{display:flex}
.rsm-modal-card{position:relative;width:min(720px,100%);max-height:90vh;overflow:auto;border-radius:24px;background:#fff;box-shadow:0 35px 90px rgba(0,0,0,.3)}
.rsm-close{position:absolute;right:14px;top:14px;z-index:3;width:40px;height:40px;border:0;border-radius:50%;background:#fff;font-size:24px;cursor:pointer}
.rsm-modal-head{display:grid;grid-template-columns:1fr 190px;gap:18px;padding:24px;border-bottom:1px solid #eee}
.rsm-modal-head img{width:190px;height:150px;object-fit:cover;border-radius:18px}
.rsm-modal h3{margin:0 0 8px;font-size:27px}
.rsm-modal-body{padding:22px}
.rsm-included-list{display:flex;gap:7px;flex-wrap:wrap}
.rsm-included-list span{padding:7px 10px;border-radius:999px;background:#f3f3f3;font-size:12px}
.rsm-choice{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #eee}
.rsm-choice label{display:flex;align-items:center;gap:8px}
.rsm-option-group{margin:12px 0;padding:14px;border:1px solid #e8e8e8;border-radius:15px;background:#fafafa}
.rsm-modal textarea,.rsm-cart textarea,.rsm-cart input{width:100%;padding:12px;border:1px solid #ddd;border-radius:12px}
.rsm-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}
.rsm-qty{display:flex;align-items:center;gap:12px;padding:5px;border-radius:12px;background:#f3f3f3}
.rsm-qty button{width:36px;height:36px;border:0;border-radius:9px;background:#fff;font-size:20px}
.rsm-btn{min-height:42px;padding:0 16px;border:0;border-radius:12px;background:#111;color:#fff;font-weight:800;cursor:pointer}
.rsm-btn.secondary{background:var(--rsm-primary,#111)}
.rsm-consult-note{margin-top:15px;padding:13px;border-radius:12px;background:#f5f5f5;color:#666}

.rsm-service-gate,.rsm-language-gate{position:fixed;inset:0;z-index:100001;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.58);backdrop-filter:blur(7px)}
.rsm-service-gate.open,.rsm-language-gate.open{display:flex}
.rsm-gate-card,.rsm-language-card{position:relative;width:min(540px,100%);padding:25px;border-radius:24px;background:#fff;box-shadow:0 30px 85px rgba(0,0,0,.3)}
.rsm-language-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.rsm-language-grid button{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid #e5e5e5;border-radius:14px;background:#fafafa;text-align:left}
.rsm-language-grid b{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#111;color:#fff}

.rsm-sticky-menu-bar{position:fixed;left:50%;bottom:15px;z-index:99998;width:min(680px,calc(100vw - 24px));transform:translateX(-50%);pointer-events:none}
.rsm-sticky-menu-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 9px 9px 16px;border:1px solid #e7e7e7;border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 17px 50px rgba(0,0,0,.2);backdrop-filter:blur(12px);pointer-events:auto}
.rsm-sticky-menu-text{display:grid}.rsm-sticky-menu-text span{font-size:11px;color:#777}
.rsm-sticky-menu-button{display:grid;place-items:center;min-height:43px;padding:0 22px;border-radius:999px;background:#111;color:#fff!important;text-decoration:none;font-weight:800}

@media(max-width:1180px){
  .rsm-app-shell{grid-template-columns:1fr;width:min(100%,calc(100% - 12px));padding:8px}
  .rsm-app-sidebar{display:none}
  .rsm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .rsm-app-shell{width:100%;margin:0;padding:0;border-radius:0;background:#fff}
  .rsm-wrap{padding:12px 12px 90px;border-radius:0;box-shadow:none}
  .rsm-mode-actions{flex-wrap:wrap}
  .rsm-language-strip{width:100%;order:1}
  .rsm-mode-btn{margin-left:auto}
  .rsm-tabs button{flex-basis:80px;height:82px;border-radius:17px}
  .rsm-grid{grid-template-columns:1fr;gap:13px}
  .rsm-card-media{height:205px}
  .rsm-card-media.rsm-card-media-band{height:54px}
  .rsm-mobile-cart.show{position:fixed;left:10px;right:10px;bottom:10px;width:auto;margin:0;z-index:9999}
  .rsm-mobile-order-btn{display:none}
  .rsm-mobile-cart-copy small{display:none}
  .rsm-mobile-total{font-size:19px}
  .rsm-modal-head{grid-template-columns:1fr}
  .rsm-modal-head img{width:100%;height:210px}
}


/* 1.0.16 — icone e logo caricabili dal backend */
.rsm-tab-icon img{display:block;width:34px;height:34px;object-fit:contain}
.rsm-brand-uploaded{width:108px;height:88px;margin:0 auto 12px;display:grid;place-items:center}
.rsm-brand-uploaded img{display:block;max-width:100%;max-height:100%;object-fit:contain}


/* 1.0.17 — icone personalizzabili */
.rsm-dish-status i img{display:block;width:16px;height:16px;object-fit:contain}


/* 1.0.18 — modal compatta e modalità domicilio evidente */
.rsm-delivery-banner[hidden]{display:none!important}
.rsm-delivery-banner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:12px 0 6px;
  padding:13px 15px;
  border:1px solid #ccebd5;
  border-radius:16px;
  background:linear-gradient(135deg,#eefaf1,#f8fff9);
  color:#1e6435;
  box-shadow:0 8px 22px rgba(33,115,61,.08);
}
.rsm-delivery-banner>div{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
}
.rsm-delivery-status-icon{
  flex:0 0 34px;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#2fa553;
  color:#fff;
  font-weight:900;
}
.rsm-delivery-banner strong{
  display:block;
  font-size:14px;
}
.rsm-delivery-banner small{
  display:block;
  margin-top:2px;
  color:#4d7a5c;
  font-size:12px;
  line-height:1.35;
}
.rsm-delivery-banner button{
  flex:0 0 auto;
  border:0;
  background:transparent;
  color:#1e6435;
  font:inherit;
  font-size:12px;
  font-weight:800;
  text-decoration:underline;
  cursor:pointer;
}
.rsm-mode-btn.is-active{
  background:#2fa553!important;
  color:#fff!important;
  box-shadow:0 0 0 4px rgba(47,165,83,.12)!important;
}

/* Modal: non deve mai superare la viewport */
.rsm-modal{
  align-items:center!important;
  overflow:hidden!important;
  padding:14px!important;
}
.rsm-modal-card{
  width:min(700px,100%)!important;
  max-height:min(82vh,720px)!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  border-radius:22px!important;
}
.rsm-modal-head{
  flex:0 0 auto!important;
  max-height:230px!important;
  overflow:hidden!important;
  padding:18px 20px!important;
}
.rsm-modal-head img{
  width:150px!important;
  height:118px!important;
}
.rsm-modal h3{
  font-size:24px!important;
  line-height:1.1!important;
}
.rsm-modal-body{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  padding:18px 20px 22px!important;
  scrollbar-width:thin;
}
.rsm-modal-body h4{
  margin:12px 0 8px!important;
}
.rsm-option-group{
  max-height:290px;
  overflow-y:auto;
  overscroll-behavior:contain;
}
.rsm-option-group .rsm-choice{
  min-height:40px;
  padding:8px 0!important;
}
.rsm-choice{
  min-height:40px;
  padding:8px 0!important;
}
.rsm-close{
  position:absolute!important;
  top:10px!important;
  right:10px!important;
  width:36px!important;
  height:36px!important;
  line-height:34px!important;
  z-index:9!important;
}
.rsm-actions{
  position:sticky;
  bottom:-22px;
  z-index:4;
  margin:18px -20px -22px!important;
  padding:12px 20px 16px;
  background:linear-gradient(180deg,rgba(255,255,255,.82),#fff 30%);
  border-top:1px solid #eee;
}

@media(max-width:760px){
  .rsm-delivery-banner{
    align-items:flex-start;
    padding:12px;
  }
  .rsm-delivery-banner button{
    max-width:110px;
    text-align:right;
  }
  .rsm-modal{
    align-items:flex-end!important;
    padding:0!important;
  }
  .rsm-modal-card{
    width:100%!important;
    max-height:78vh!important;
    border-radius:22px 22px 0 0!important;
  }
  .rsm-modal-head{
    grid-template-columns:1fr 105px!important;
    max-height:170px!important;
    padding:16px!important;
  }
  .rsm-modal-head img{
    width:105px!important;
    height:88px!important;
  }
  .rsm-modal h3{
    font-size:21px!important;
    padding-right:24px;
  }
  .rsm-modal-body{
    padding:14px 16px 18px!important;
  }
  .rsm-option-group{
    max-height:235px;
  }
  .rsm-actions{
    bottom:-18px;
    margin:16px -16px -18px!important;
    padding:11px 16px 14px;
  }
}

@media(max-height:720px){
  .rsm-modal-card{
    max-height:88vh!important;
  }
  .rsm-modal-head{
    max-height:155px!important;
  }
  .rsm-option-group{
    max-height:200px;
  }
}


/* 1.0.19 — correzione verificata popup e stato ordine */
html.rsm-modal-open,html.rsm-modal-open body{overflow:hidden!important}
.rsm-delivery-banner{
  position:sticky!important;
  top:8px!important;
  z-index:45!important;
  margin:10px 0 14px!important;
  border:1px solid #bce3c8!important;
  background:#edf9f1!important;
  box-shadow:0 10px 28px rgba(30,120,62,.13)!important;
}
.rsm-mode-btn.is-active:before{content:'✓';display:inline-grid;place-items:center;width:19px;height:19px;margin-right:7px;border-radius:50%;background:rgba(255,255,255,.22)}
.rsm-modal{position:fixed!important;inset:0!important;display:none!important;align-items:center!important;justify-content:center!important;padding:16px!important;overflow:hidden!important}
.rsm-modal.open{display:flex!important}
.rsm-modal-card{
  position:relative!important;
  width:min(680px,calc(100vw - 32px))!important;
  height:min(690px,calc(100dvh - 32px))!important;
  max-height:none!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  overflow:hidden!important;
  border-radius:22px!important;
}
.rsm-modal-head{
  position:relative!important;
  min-height:0!important;
  max-height:none!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 130px!important;
  gap:14px!important;
  padding:17px 54px 15px 18px!important;
  overflow:hidden!important;
  border-bottom:1px solid #ececec!important;
  background:#fff!important;
}
.rsm-modal-head>div{min-width:0!important}
.rsm-modal-head h3{margin:0 0 6px!important;font-size:23px!important;line-height:1.1!important}
.rsm-modal-head .rsm-desc{display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;margin:0 0 7px!important;font-size:12px!important;line-height:1.35!important}
.rsm-modal-head .rsm-meta{margin:0 0 5px!important}
.rsm-modal-head img{width:130px!important;height:100px!important;object-fit:cover!important;border-radius:13px!important}
.rsm-modal-body{
  min-height:0!important;
  height:auto!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding:14px 18px 82px!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
}
.rsm-modal-body>h4:first-child{margin-top:0!important}
.rsm-option-group{max-height:245px!important;overflow-y:auto!important;padding:10px 13px!important}
.rsm-option-group>.rsm-choice{min-height:36px!important;padding:7px 0!important}
.rsm-actions{
  position:absolute!important;
  left:0!important;right:0!important;bottom:0!important;
  margin:0!important;padding:11px 18px!important;
  min-height:64px!important;
  background:#fff!important;
  border-top:1px solid #e8e8e8!important;
  box-shadow:0 -10px 25px rgba(0,0,0,.06)!important;
}
.rsm-close{position:absolute!important;top:9px!important;right:9px!important;z-index:20!important}
@media(max-width:760px){
 .rsm-modal{align-items:flex-end!important;padding:0!important}
 .rsm-modal-card{width:100%!important;height:min(74dvh,610px)!important;border-radius:22px 22px 0 0!important}
 .rsm-modal-head{grid-template-columns:minmax(0,1fr) 92px!important;padding:14px 50px 12px 15px!important}
 .rsm-modal-head img{width:92px!important;height:76px!important}
 .rsm-modal-head h3{font-size:20px!important}
 .rsm-modal-body{padding:12px 15px 78px!important}
 .rsm-option-group{max-height:205px!important}
 .rsm-actions{padding:10px 15px!important}
 .rsm-delivery-banner{top:4px!important}
 .rsm-delivery-banner small{display:none!important}
}
@media(max-height:650px){
 .rsm-modal-card{height:calc(100dvh - 16px)!important}
 .rsm-modal-head{padding-top:11px!important;padding-bottom:10px!important}
 .rsm-option-group{max-height:160px!important}
}
\n\n/* 1.0.20 — allergeni completi nel popup */
.rsm-modal-allergens{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:8px;
}
.rsm-modal-allergen{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:32px;
  padding:5px 11px 5px 5px;
  border:1px solid #e1e1e1;
  border-radius:999px;
  background:#f7f7f7;
  color:#333;
  font-size:12px;
  font-weight:700;
}
.rsm-modal-allergen b{
  display:grid;
  place-items:center;
  flex:0 0 23px;
  width:23px;
  height:23px;
  border-radius:50%;
  background:#111;
  color:#fff;
  font-size:10px;
}
.rsm-modal-allergen span{line-height:1.2}
@media(max-width:760px){
  .rsm-modal-allergens{gap:6px}
  .rsm-modal-allergen{font-size:11px;padding-right:9px}
}


/* 1.0.21 — barra ordine fissa e pannello carrello funzionante */
.rsm-wrap{
  padding-bottom:118px!important;
}

.rsm-mobile-cart.show{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:16px!important;
  z-index:99990!important;
  width:min(1180px,calc(100vw - 32px))!important;
  min-height:76px!important;
  margin:0!important;
  transform:translateX(-50%)!important;
  display:flex!important;
  align-items:center!important;
  gap:15px!important;
  padding:11px 18px!important;
  border:0!important;
  border-radius:19px!important;
  background:#111!important;
  color:#fff!important;
  box-shadow:0 24px 60px rgba(0,0,0,.30)!important;
  cursor:pointer!important;
}

.rsm-mobile-order-btn{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-width:225px;
  min-height:54px;
  padding:0 22px!important;
  border-radius:13px!important;
  background:#ffc21c!important;
  color:#111!important;
  font-size:16px!important;
  font-weight:850!important;
}

.rsm-cart{
  position:fixed!important;
  inset:0!important;
  z-index:100010!important;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:stretch!important;
  padding:0!important;
  background:rgba(0,0,0,.50)!important;
  backdrop-filter:blur(5px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .20s ease,visibility .20s ease;
}

.rsm-cart.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.rsm-cart::before{
  content:"";
  flex:1 1 auto;
}

.rsm-cart > *{
  box-sizing:border-box;
}

.rsm-cart{
  color:#111;
}

/* Il contenuto generato direttamente nell'aside diventa il pannello */
.rsm-cart.open{
  padding-left:max(0px,calc(100vw - 520px))!important;
  background:rgba(0,0,0,.50)!important;
}

.rsm-cart.open{
  overflow-y:auto;
}

.rsm-cart.open{
  display:block!important;
}

.rsm-cart.open{
  background:
    linear-gradient(to left,#fff 0 min(520px,100vw),rgba(0,0,0,.50) min(520px,100vw) 100%)!important;
}

.rsm-cart.open > *{
  max-width:520px;
  margin-left:auto;
}

/* L'aside contiene direttamente gli elementi: li raccogliamo visualmente nel pannello */
.rsm-cart.open{
  padding:24px 28px 110px calc(100vw - min(520px,100vw) + 24px)!important;
}

.rsm-cart-drawer-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.rsm-cart-close{
  flex:0 0 40px;
  width:40px;
  height:40px;
  border:0;
  border-radius:50%;
  background:#f1f1f1;
  color:#111;
  font-size:26px;
  line-height:36px;
  cursor:pointer;
}

.rsm-cart.open h3{
  margin:8px 0 16px;
  font-size:26px;
}

.rsm-cart.open input,
.rsm-cart.open textarea{
  width:100%;
  margin:0 0 10px;
  padding:13px 14px;
  border:1px solid #ddd;
  border-radius:12px;
  background:#fff;
}

.rsm-cart.open .rsm-line{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:13px 0;
  border-bottom:1px solid #ececec;
}

.rsm-cart.open .rsm-line small{
  display:block;
  margin-top:4px;
  color:#777;
}

.rsm-cart.open .rsm-total{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:18px;
  padding-top:15px;
  border-top:2px solid #111;
  font-size:22px;
  font-weight:850;
}

.rsm-cart.open #rsm-send{
  width:100%;
  min-height:52px;
  margin-top:16px;
  border-radius:13px;
  font-size:15px;
}

html.rsm-cart-is-open,
html.rsm-cart-is-open body{
  overflow:hidden!important;
}

@media(max-width:760px){
  .rsm-wrap{padding-bottom:104px!important}

  .rsm-mobile-cart.show{
    left:10px!important;
    right:10px!important;
    bottom:10px!important;
    width:auto!important;
    min-height:66px!important;
    transform:none!important;
    padding:9px 12px!important;
  }

  .rsm-mobile-cart-copy b{font-size:14px!important}
  .rsm-mobile-total{font-size:18px!important}
  .rsm-mobile-order-btn{
    display:inline-flex!important;
    min-width:auto!important;
    min-height:46px!important;
    padding:0 14px!important;
    font-size:13px!important;
  }

  .rsm-cart.open{
    padding:0!important;
    display:flex!important;
    align-items:flex-end!important;
    background:rgba(0,0,0,.52)!important;
    overflow:hidden!important;
  }

  .rsm-cart.open::before{display:none}

  .rsm-cart.open{
    padding-top:18vh!important;
  }

  .rsm-cart.open{
    background:rgba(0,0,0,.52)!important;
  }

  .rsm-cart.open{
    max-height:100vh;
  }

  .rsm-cart.open{
    border-radius:0!important;
  }

  .rsm-cart.open{
    box-shadow:none!important;
  }

  .rsm-cart.open{
    overflow-y:auto!important;
  }

  .rsm-cart.open{
    padding-left:16px!important;
    padding-right:16px!important;
    padding-bottom:20px!important;
  }

  .rsm-cart.open > *{max-width:none}

  .rsm-cart.open{
    background:
      linear-gradient(to top,#fff 0 82%,rgba(0,0,0,.52) 82% 100%)!important;
  }

  .rsm-cart-drawer-head{
    margin-top:16px;
  }
}


/* 1.0.22 — sidebar rimossa */
.rsm-app-shell{
  display:block!important;
  grid-template-columns:none!important;
  width:min(1560px,calc(100% - 24px))!important;
  margin:12px auto!important;
  padding:14px!important;
}

.rsm-app-sidebar{
  display:none!important;
}

.rsm-wrap{
  width:100%!important;
  max-width:none!important;
}

@media(max-width:1180px){
  .rsm-app-shell{
    width:min(100%,calc(100% - 12px))!important;
    padding:8px!important;
  }
}

@media(max-width:760px){
  .rsm-app-shell{
    width:100%!important;
    margin:0!important;
    padding:0!important;
  }
}


/* 1.0.23 — storico e gestione comande cameriere */
.rsm-orders-history-btn{background:#fff!important;color:#111!important;border:1px solid #ddd!important}
.rsm-service-gate.rsm-orders-gate{align-items:flex-start!important;overflow-y:auto!important;padding:24px!important}
.rsm-orders-panel{width:min(980px,100%);margin:auto;padding:24px;border-radius:24px;background:#f5f5f5;color:#111}
.rsm-orders-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.rsm-orders-panel-head h2{margin:5px 0 0;font-size:29px}
.rsm-orders-panel>section{margin-top:22px}
.rsm-orders-panel>section>h3{display:flex;align-items:center;gap:8px;margin:0 0 12px}
.rsm-orders-panel>section>h3 b{display:grid;place-items:center;min-width:25px;height:25px;padding:0 7px;border-radius:999px;background:#111;color:#fff;font-size:11px}
.rsm-history-order{margin:0 0 12px;padding:16px;border:1px solid #e3e3e3;border-radius:17px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.05)}
.rsm-history-order.is-closed{opacity:.78}
.rsm-history-order-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.rsm-history-order-head b{display:block;font-size:17px}.rsm-history-order-head small{display:block;margin-top:4px;color:#777}
.rsm-history-order-head>span{padding:6px 9px;border-radius:999px;background:#eaf8ee;color:#25723b;font-size:11px;font-weight:800}
.rsm-history-order.is-closed .rsm-history-order-head>span{background:#eee;color:#666}
.rsm-history-summary{display:flex;justify-content:space-between;gap:12px;margin:14px 0;padding:11px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}
.rsm-history-summary strong{font-size:19px}
.rsm-history-order details summary{cursor:pointer;font-weight:750}
.rsm-operation-log{margin-top:10px;padding-left:12px;border-left:2px solid #ddd}
.rsm-operation-log p{display:grid;grid-template-columns:110px 125px 1fr;gap:10px;margin:0;padding:7px 0;font-size:12px}
.rsm-operation-log span{color:#555}.rsm-operation-log small{color:#777}
.rsm-history-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.rsm-history-actions button{min-height:39px;padding:0 12px;border:1px solid #ddd;border-radius:10px;background:#fff;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.rsm-history-actions button:first-child{background:#111;color:#fff;border-color:#111}
.rsm-history-actions button.close{background:#eaf8ee;color:#246f39;border-color:#ccebd5}
.rsm-history-actions button.delete{margin-left:auto;color:#a72d2d;border-color:#efcccc}
.rsm-no-orders{padding:18px;border:1px dashed #ccc;border-radius:14px;background:#fff;color:#777;text-align:center}
.rsm-orders-loading{margin:auto;padding:30px;border-radius:18px;background:#fff;font-weight:800}
@media(max-width:700px){
 .rsm-service-gate.rsm-orders-gate{padding:0!important;align-items:flex-end!important}
 .rsm-orders-panel{max-height:92vh;overflow-y:auto;border-radius:22px 22px 0 0;padding:18px}
 .rsm-operation-log p{grid-template-columns:1fr}.rsm-history-actions button{flex:1 1 45%}.rsm-history-actions button.delete{margin-left:0}
}


/* 1.0.24 — modifica righe e pannello ordine corretto */
.rsm-cart.open{
  padding-top:20px!important;
  align-items:flex-start!important;
}

.rsm-cart-drawer-head{
  position:sticky;
  top:0;
  z-index:5;
  padding-top:4px;
  background:#fff;
}

.rsm-line-actions{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
}

.rsm-line-actions>div{
  display:flex;
  align-items:center;
  gap:7px;
}

.rsm-edit-line{
  min-height:30px;
  padding:0 9px;
  border:1px solid #d8d8d8;
  border-radius:8px;
  background:#fff;
  color:#111;
  font:inherit;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}

.rsm-remove{
  min-width:30px;
  min-height:30px;
}

@media(max-width:760px){
  .rsm-cart.open{
    padding-top:12px!important;
    align-items:flex-end!important;
  }

  .rsm-cart-drawer-head{
    top:0;
    padding-top:0;
  }
}


/* 1.0.25 — pannello ordine e modifica corretti */
.rsm-cart.open{
  z-index:100000!important;
  padding-top:58px!important;
}

.rsm-cart-drawer-head{
  position:sticky!important;
  top:0!important;
  z-index:8!important;
  min-height:52px;
  margin-top:0!important;
  padding:8px 0 10px!important;
  background:#fff!important;
  border-bottom:1px solid #eee;
}

.rsm-cart.open h3{
  margin:12px 0 16px!important;
  padding-top:0!important;
}

.rsm-cart-close{
  position:relative!important;
  top:auto!important;
  right:auto!important;
  z-index:10!important;
  display:grid!important;
  place-items:center!important;
  flex:0 0 42px!important;
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  border:1px solid #ddd!important;
  border-radius:50%!important;
  background:#fff!important;
  color:#111!important;
  box-shadow:0 4px 14px rgba(0,0,0,.08)!important;
  font-size:25px!important;
  cursor:pointer!important;
}

.rsm-modal{
  z-index:100100!important;
}

.rsm-service-gate,
.rsm-language-gate{
  z-index:100200!important;
}

@media(max-width:760px){
  .rsm-cart.open{
    padding-top:72px!important;
  }

  .rsm-cart-drawer-head{
    padding-top:10px!important;
  }
}


/* 1.0.27 — elenco piatti nelle comande */
.rsm-history-items{
  margin:14px 0;
  padding:13px 14px;
  border:1px solid #ececec;
  border-radius:14px;
  background:#fafafa;
}
.rsm-history-items h4{
  margin:0 0 10px;
  font-size:14px;
}
.rsm-history-item{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:9px 0;
  border-bottom:1px solid #e8e8e8;
}
.rsm-history-item:last-child{
  border-bottom:0;
  padding-bottom:0;
}
.rsm-history-item:first-of-type{
  padding-top:0;
}
.rsm-history-item b{
  display:block;
  font-size:13px;
}
.rsm-history-item small{
  display:block;
  margin-top:4px;
  color:#777;
  font-size:11px;
  line-height:1.4;
}
.rsm-history-item>strong{
  flex:0 0 auto;
  white-space:nowrap;
  font-size:13px;
}


/* 1.0.28 — riepilogo cameriere semplificato */
.rsm-cart.open #rsm-people{
  display:none!important;
}

.rsm-cart.open #rsm-send{
  margin-top:18px!important;
}

.rsm-cart:not(.open){
  pointer-events:none!important;
}


/* 1.0.30 — blocco tavolo con comanda aperta */
.rsm-table-open-warning{
  display:grid;
  gap:9px;
  margin-top:12px;
  padding:13px;
  border:1px solid #f0c7c7;
  border-radius:13px;
  background:#fff2f2;
  color:#8d2424;
}
.rsm-table-open-warning b{
  font-size:13px;
  line-height:1.4;
}
.rsm-table-open-warning span{
  color:#6f3535;
  font-size:12px;
}
.rsm-table-open-warning button{
  width:max-content;
  min-height:38px;
  padding:0 12px;
  border:0;
  border-radius:9px;
  background:#111;
  color:#fff;
  font:inherit;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}


/* 1.0.31 — popup comande più compatto */
.rsm-service-gate.rsm-orders-gate{
  align-items:center!important;
  overflow:hidden!important;
  padding:
    calc(24px + var(--wp-admin--admin-bar--height, 0px))
    20px
    20px!important;
}

.rsm-orders-panel{
  width:min(980px,100%)!important;
  max-height:min(76vh,760px)!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  margin:auto!important;
  padding:0!important;
  border-radius:24px!important;
  background:#f5f5f5!important;
}

.rsm-orders-panel-head{
  position:sticky!important;
  top:0!important;
  z-index:10!important;
  flex:0 0 auto!important;
  margin:0!important;
  padding:20px 24px 16px!important;
  background:#f5f5f5!important;
  border-bottom:1px solid #e4e4e4!important;
}

.rsm-orders-panel-head h2{
  margin:4px 0 0!important;
}

.rsm-orders-panel>section{
  margin:0!important;
  padding:18px 24px 0!important;
}

.rsm-orders-panel>section:first-of-type{
  padding-top:18px!important;
}

.rsm-orders-panel>section:last-of-type{
  padding-bottom:22px!important;
}

.rsm-orders-panel{
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}

.rsm-history-order{
  margin-bottom:12px!important;
}

@media(max-width:760px){
  .rsm-service-gate.rsm-orders-gate{
    align-items:flex-end!important;
    padding:
      calc(10px + var(--wp-admin--admin-bar--height, 0px))
      0
      0!important;
  }

  .rsm-orders-panel{
    width:100%!important;
    max-height:78vh!important;
    border-radius:22px 22px 0 0!important;
  }

  .rsm-orders-panel-head{
    padding:16px 18px 13px!important;
  }

  .rsm-orders-panel>section{
    padding-left:18px!important;
    padding-right:18px!important;
  }
}

@media(max-height:760px){
  .rsm-orders-panel{
    max-height:72vh!important;
  }
}


/* 1.0.32 — pannello ordine sotto la barra WordPress */
.rsm-cart.open{
  top:var(--wp-admin--admin-bar--height, 0px)!important;
  bottom:0!important;
  height:calc(100vh - var(--wp-admin--admin-bar--height, 0px))!important;
  min-height:0!important;
  padding-top:18px!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
}

.rsm-cart-drawer-head{
  top:0!important;
  padding-top:6px!important;
}

.rsm-cart.open h3{
  margin-top:8px!important;
}

@media(max-width:760px){
  .rsm-cart.open{
    top:var(--wp-admin--admin-bar--height, 0px)!important;
    height:calc(100vh - var(--wp-admin--admin-bar--height, 0px))!important;
    max-height:none!important;
    padding-top:12px!important;
  }
}

@media(max-height:760px){
  .rsm-cart.open{
    padding-top:10px!important;
  }
}


/* 1.0.33 — pannello ordine ulteriormente abbassato */
.rsm-cart.open{
  top:72px!important;
  bottom:0!important;
  height:calc(100vh - 72px)!important;
  max-height:calc(100vh - 72px)!important;
  padding-top:14px!important;
}

.rsm-cart-drawer-head{
  top:0!important;
  min-height:58px!important;
  padding:10px 0 12px!important;
}

.rsm-cart-close{
  margin-top:2px!important;
}

body.admin-bar .rsm-cart.open{
  top:104px!important;
  height:calc(100vh - 104px)!important;
  max-height:calc(100vh - 104px)!important;
}

@media(max-width:782px){
  .rsm-cart.open{
    top:76px!important;
    height:calc(100vh - 76px)!important;
    max-height:calc(100vh - 76px)!important;
  }

  body.admin-bar .rsm-cart.open{
    top:122px!important;
    height:calc(100vh - 122px)!important;
    max-height:calc(100vh - 122px)!important;
  }
}

/* 1.0.35 — categorie scorrevoli, icone allineate e badge proporzionati */
.rsm-menu,
.rsm-menu-tools,
.rsm-tabs{
  min-width:0;
  max-width:100%;
}
.rsm-tabs{
  width:100%;
  overflow-x:auto!important;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
  touch-action:pan-x;
  cursor:grab;
  scrollbar-width:thin;
  scrollbar-color:#d8d3cd transparent;
}
.rsm-tabs:active{cursor:grabbing}
.rsm-tabs::-webkit-scrollbar{display:block;height:5px}
.rsm-tabs::-webkit-scrollbar-track{background:transparent}
.rsm-tabs::-webkit-scrollbar-thumb{background:#d8d3cd;border-radius:999px}
.rsm-tabs button{
  flex:0 0 116px;
  height:114px;
  display:grid;
  grid-template-rows:42px 38px;
  align-content:center;
  justify-items:center;
  row-gap:7px;
}
.rsm-tab-icon{
  width:38px;
  height:38px;
  align-self:center;
}
.rsm-tab-icon img,
.rsm-tab-icon svg{
  width:34px!important;
  height:34px!important;
  object-fit:contain;
}
.rsm-tabs button > span:last-child{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  width:100%;
  min-height:38px;
  line-height:1.18;
  text-align:center;
}
.rsm-dish-status{
  gap:5px;
  padding:5px 9px;
  font-size:9px;
  line-height:1;
}
.rsm-dish-status i{
  flex:0 0 13px;
  width:13px;
  height:13px;
  display:grid;
  place-items:center;
  font-size:12px;
  line-height:1;
}
.rsm-card-media .rsm-dish-status i img,
.rsm-dish-status i img{
  display:block!important;
  width:13px!important;
  height:13px!important;
  max-width:13px!important;
  max-height:13px!important;
  object-fit:contain!important;
}

@media(max-width:760px){
  .rsm-tabs button{
    flex-basis:94px;
    height:100px;
    grid-template-rows:38px 34px;
  }
  .rsm-tabs button > span:last-child{min-height:34px}
}

/* Popolarità piatti 1.0.36 */
.rsm-popularity{
  position:absolute;top:14px;right:14px;z-index:3;
  min-width:44px;height:38px;padding:0 10px;
  display:flex;align-items:center;justify-content:center;gap:5px;
  border-radius:9px;background:rgba(255,255,255,.94);
  box-shadow:0 2px 10px rgba(0,0,0,.04);
  color:#202020;pointer-events:none;
}
.rsm-popularity .rsm-heart-icon{width:19px;height:19px;display:grid;place-items:center;transform:none;border:0;border-radius:0}
.rsm-popularity .rsm-heart-icon:before,.rsm-popularity .rsm-heart-icon:after{content:none}
.rsm-popularity .rsm-heart-icon svg{width:19px;height:19px;display:block;stroke-width:1.9}
.rsm-popularity b{font-size:12px;line-height:1;font-weight:750;font-variant-numeric:tabular-nums}

/* 1.0.39 — riepilogo ordine realmente responsive su mobile */
@media (max-width:760px){
  .rsm-cart.open{
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    min-height:100vh!important;
    max-height:none!important;
    display:block!important;
    padding:
      calc(12px + env(safe-area-inset-top))
      14px
      calc(24px + env(safe-area-inset-bottom))!important;
    margin:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    background:#fff!important;
    background-image:none!important;
    border-radius:0!important;
    box-shadow:none!important;
  }

  .rsm-cart.open::before{display:none!important}

  .rsm-cart.open > *{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .rsm-cart-drawer-head{
    position:sticky!important;
    top:calc(-12px - env(safe-area-inset-top))!important;
    z-index:5!important;
    margin:0 -14px 10px!important;
    padding:12px 14px 10px!important;
    background:#fff!important;
    border-bottom:1px solid #ececec!important;
  }

  .rsm-cart.open h3{
    margin:12px 0 14px!important;
    font-size:24px!important;
    line-height:1.15!important;
  }

  .rsm-cart.open .rsm-line{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:start!important;
    gap:10px!important;
    width:100%!important;
    padding:12px 0!important;
  }

  .rsm-cart.open .rsm-line > div:first-child,
  .rsm-cart.open .rsm-line > span:first-child{
    min-width:0!important;
    overflow-wrap:anywhere!important;
  }

  .rsm-cart.open .rsm-line-actions{
    min-width:76px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-end!important;
    gap:8px!important;
  }

  .rsm-cart.open .rsm-line-actions > div{
    display:flex!important;
    justify-content:flex-end!important;
    gap:7px!important;
    white-space:nowrap!important;
  }

  .rsm-cart.open .rsm-edit-line,
  .rsm-cart.open .rsm-remove{
    min-height:38px!important;
    margin:0!important;
  }

  .rsm-cart.open .rsm-total{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:12px!important;
    width:100%!important;
    margin:18px 0 0!important;
    padding:15px 0 0!important;
    font-size:22px!important;
    line-height:1.15!important;
  }

  .rsm-cart.open .rsm-total span:last-child{
    text-align:right!important;
    white-space:nowrap!important;
  }

  .rsm-cart.open #rsm-send{
    position:sticky!important;
    bottom:calc(0px - env(safe-area-inset-bottom))!important;
    z-index:4!important;
    width:100%!important;
    min-width:0!important;
    min-height:54px!important;
    margin:16px 0 0!important;
    padding:10px 16px!important;
    background:#111!important;
    box-shadow:0 -8px 20px rgba(255,255,255,.94)!important;
    white-space:normal!important;
  }
}

@media (max-width:380px){
  .rsm-cart.open{
    padding-left:11px!important;
    padding-right:11px!important;
  }
  .rsm-cart-drawer-head{
    margin-left:-11px!important;
    margin-right:-11px!important;
    padding-left:11px!important;
    padding-right:11px!important;
  }
  .rsm-cart.open .rsm-line{
    gap:7px!important;
  }
  .rsm-cart.open .rsm-line-actions{
    min-width:70px!important;
  }
}


/* 1.0.40 — costi di coperto e spedizione visibili */
.rsm-public-fees{margin:16px 0;padding:12px 14px;border:1px solid #e6e6e6;border-radius:14px;background:#fff;text-align:left}
.rsm-public-fees>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 0}
.rsm-public-fees>div+div{border-top:1px solid #eeeeee}
.rsm-public-fees span{color:#666;font-size:13px}
.rsm-public-fees b{color:#111;font-size:13px;text-align:right}
@media(max-width:600px){.rsm-public-fees{margin:14px 0;padding:10px 12px}.rsm-public-fees>div{align-items:flex-start}.rsm-public-fees span,.rsm-public-fees b{font-size:12px}}


/* 1.0.41 — costo servizio sempre visibile sotto le categorie */
.rsm-menu-fee-notice{
  display:flex;
  align-items:center;
  gap:11px;
  width:max-content;
  max-width:100%;
  margin:12px 0 14px;
  padding:10px 14px;
  border:1px solid #e6e1dc;
  border-radius:12px;
  background:#fffaf5;
  color:#171717;
  box-sizing:border-box;
}
.rsm-menu-fee-notice[hidden]{display:none!important}
.rsm-menu-fee-icon{
  display:grid;
  place-items:center;
  flex:0 0 30px;
  width:30px;
  height:30px;
  border-radius:50%;
  background:#fff;
  border:1px solid #ead8c8;
  font-size:15px;
  font-weight:800;
  color:#7b3f20;
}
.rsm-menu-fee-notice div{display:flex;align-items:baseline;gap:8px;min-width:0}
.rsm-menu-fee-notice small{font-size:13px;color:#6d6d6d;white-space:nowrap}
.rsm-menu-fee-notice strong{font-size:14px;line-height:1.25;color:#171717}
@media(max-width:600px){
  .rsm-menu-fee-notice{width:100%;margin:10px 0 12px;padding:9px 11px}
  .rsm-menu-fee-notice div{flex-wrap:wrap;gap:2px 7px}
  .rsm-menu-fee-notice small,.rsm-menu-fee-notice strong{font-size:12px}
}

/* 1.0.43 — fascia colore categoria per piatti senza foto */
.rsm-card-media-band .rsm-dish-status,.rsm-card-media-band .rsm-popularity{z-index:3}


/* 1.0.44 — nome categoria accanto al contatore del cuore */
.rsm-card-category-name{
  position:absolute;
  top:14px;
  right:72px;
  z-index:3;
  max-width:min(42%,220px);
  height:38px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:800;
  letter-spacing:.035em;
  text-transform:uppercase;
  text-align:right;
  text-shadow:0 1px 4px rgba(0,0,0,.35);
  pointer-events:none;
}
@media(max-width:760px){
  .rsm-card-category-name{
    right:68px;
    max-width:40%;
    font-size:11px;
  }
}

/* 1.0.45 — barra categorie sticky durante lo scorrimento */
.rsm-tabs{
  position:-webkit-sticky;
  position:sticky;
  top:var(--rsm-categories-sticky-top, 0px);
  z-index:90;
  box-sizing:border-box;
  padding-top:8px;
  padding-bottom:8px;
  background:rgba(255,255,255,.97);
  backdrop-filter:saturate(160%) blur(10px);
  -webkit-backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid rgba(0,0,0,.07);
  box-shadow:0 8px 18px rgba(0,0,0,.06);
}
body.admin-bar .rsm-tabs{
  top:calc(var(--rsm-categories-sticky-top, 0px) + 32px);
}
@media(max-width:782px){
  body.admin-bar .rsm-tabs{
    top:calc(var(--rsm-categories-sticky-top, 0px) + 46px);
  }
}
@media(max-width:600px){
  .rsm-tabs{
    padding-top:6px;
    padding-bottom:6px;
    scroll-padding-inline:8px;
  }
}


/* 1.0.46 — sticky robusto via JavaScript, indipendente dagli overflow del tema */
.rsm-tabs.rsm-tabs--fixed{
  position:fixed !important;
  top:var(--rsm-tabs-fixed-top, 0px) !important;
  left:var(--rsm-tabs-fixed-left, 0px);
  width:var(--rsm-tabs-fixed-width, auto);
  max-width:none;
  margin:0 !important;
  z-index:99980;
}
.rsm-tabs-placeholder{
  display:none;
  width:100%;
  pointer-events:none;
}
.rsm-tabs-placeholder.is-active{display:block}
@media(max-width:600px){
  .rsm-tabs.rsm-tabs--fixed{
    box-shadow:0 8px 20px rgba(0,0,0,.12);
  }
}


/* 1.0.48 — dettaglio piatto mobile sotto header e metadati separati */
.rsm-modal-head .rsm-meta{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  column-gap:12px!important;
  row-gap:7px!important;
}
.rsm-modal-head .rsm-meta .rsm-price,
.rsm-modal-head .rsm-meta .rsm-badge{
  display:inline-flex!important;
  align-items:center!important;
  margin:0!important;
  white-space:nowrap!important;
}
.rsm-modal-head .rsm-meta .rsm-badge{
  padding:5px 10px!important;
  border-radius:999px!important;
  background:#f3f3f3!important;
  color:#333!important;
  font-size:12px!important;
  line-height:1.2!important;
}
@media(max-width:760px){
  .rsm-modal-card{
    height:min(66dvh,550px)!important;
    max-height:calc(100dvh - 118px)!important;
  }
  .rsm-modal-head{
    padding-top:13px!important;
  }
  .rsm-close{
    top:10px!important;
    right:11px!important;
  }
}
@media(max-width:760px) and (max-height:700px){
  .rsm-modal-card{
    height:min(62dvh,500px)!important;
    max-height:calc(100dvh - 104px)!important;
  }
}
