/* Toast: fully hidden when not shown (no stuck message at the bottom) */
#toast{opacity:0;visibility:hidden;pointer-events:none;z-index:1000}
#toast.show{opacity:1;visibility:visible}
/* Booking page: summary bar must sit at the bottom, never over the heading; tank rows wrap cleanly */
@media(max-width:900px){
.sum.dr{top:auto!important;bottom:calc(84px + env(safe-area-inset-bottom,0px))!important}
.bk{padding-bottom:150px}
}
.tank .grow{flex:1 1 140px;min-width:140px}
.tank h4,.tank .price{overflow-wrap:normal;word-break:normal}
/* Notification permission prompt */
#npop{position:fixed;left:12px;right:12px;bottom:calc(92px + env(safe-area-inset-bottom,0px));max-width:520px;margin:0 auto;z-index:60;display:flex;align-items:center;gap:12px;padding:14px 14px 14px 16px;border-radius:18px;background:#0a2540;color:#fff;box-shadow:0 16px 40px rgba(0,0,0,.35);border:1px solid rgba(34,211,238,.3);animation:npu .35s ease both}
@keyframes npu{from{opacity:0;transform:translateY(16px)}}
#npop .np-i{font-size:1.5rem;flex:none}
#npop .np-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:.8rem;line-height:1.35}
#npop .np-t b{font-size:.92rem}#npop .np-t span{color:rgba(255,255,255,.72)}
#npop .btn{flex:none;min-height:40px}
#npop .np-x{flex:none;width:36px;height:36px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;cursor:pointer}
@media(min-width:901px){#npop{bottom:24px;left:auto;right:24px;margin:0}}
