.bg-gray-100{background-color:#f3f4f6}
.bg-white{background-color:#ffffff}
.text-gray-700{color:#374151}
.fixed{position:fixed}
.inset-0{top:0;right:0;bottom:0;left:0}
.top-0{top:0}
.left-0{left:0}
.right-0{right:0}
.bottom-0{bottom:0}
.bottom-6{bottom:1.5rem}
.bottom-12{bottom:3rem}
.bottom-16{bottom:4rem}
.hidden{display:none}
.block{display:block}
.z-50{z-index:50}
.z-60{z-index:60}
.z-70{z-index:70}
.z-80{z-index:80}
.z-90{z-index:90}
.z-999{z-index:9999}
.h-16{height:4rem}
.h-8{height:2rem}
.flex{display:flex}
.justify-between{justify-content:space-between}
.flex-col{flex-direction:column}
.items-center{align-items:center}
.justify-around{justify-content:space-around}
.px-4{padding-left:1rem;padding-right:1rem}
.pt-16{padding-top:4rem}
.pb-20{padding-bottom:5rem}
.pb-24{padding-bottom:6rem}
.pb-32{padding-bottom:8rem}
.pb-30{padding-bottom:7.5rem}
.mt-2{margin-top:.5rem}
.mr-4{margin-right:1rem}
.text-xs{font-size:.75rem}
.text-2xl{font-size:1.5rem}
.text-center{text-align:center}
.py-2{padding-top:.5rem;padding-bottom:.5rem}
.font-semibold{font-weight:600}
.shadow{box-shadow:0 1px 2px rgba(0,0,0,.1),0 1px 1px rgba(0,0,0,.06)}
.shadow-inner{box-shadow:inset 0 2px 4px rgba(0,0,0,.06)}
a{color:inherit;text-decoration:none}
button{background:transparent;border:none;padding:0;cursor:pointer}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}

.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4)}
.overlay-strong{background:rgba(0,0,0,.5)}
.drawer{position:fixed;top:4.5rem;left:0;width:80vw;max-width:320px;height:50vh;max-height:calc(100vh - 5rem);background:#fff;box-shadow:2px 0 8px rgba(0,0,0,.15);transform:translateX(-100%);transition:transform .2s ease;overflow-y:auto}
.drawer.open{transform:translateX(0)}

@media (min-width:768px){
  .drawer{height:60vh;max-width:400px}
}

.drawer-right{position:fixed;top:4.5rem;right:0;width:80vw;max-width:320px;height:50vh;max-height:calc(100vh - 5rem);background:#fff;box-shadow:-2px 0 8px rgba(0,0,0,.15);transform:translateX(100%);transition:transform .2s ease;overflow-y:auto}
.drawer-right.open{transform:translateX(0)}
@media (min-width:768px){
  .drawer-right{height:60vh;max-width:400px}
}

.drawer-bottom-right{position:fixed;right:0;bottom:8rem;width:80vw;max-width:420px;height:70vh;max-height:calc(100vh - 8rem - 1rem);background:#fff;box-shadow:-2px -2px 8px rgba(0,0,0,.15);transform:translateX(100%);transition:transform .2s ease;overflow-y:auto;border-top-left-radius:12px;border-top-right-radius:0}
.drawer-bottom-right.open{transform:translateX(0)}
@media (min-width:768px){
  .drawer-bottom-right{height:80vh}
}

.bottom-nav .label{font-size:.75rem}
@media (max-width:640px){
  .bottom-nav{height:4.8rem}
  .bottom-nav .label{font-size:.9rem}
}

.menu-list{display:flex;flex-direction:column}
.menu-item{display:flex;align-items:center;height:3.5rem;border-radius:.75rem;padding-left:.75rem;padding-right:.75rem}
.menu-item+.menu-item{margin-top:.5rem}
.menu-item .icon{font-size:1.25rem;margin-right:.75rem}
.menu-item .label{font-size:1rem;font-weight:600}
.bottom-nav a{position:relative}
.cart-badge{position:absolute;top:-.15rem;right:-.25rem;min-width:1.25rem;height:1.25rem;border-radius:999px;background:#f97316;color:#fff;font-size:.75rem;display:flex;align-items:center;justify-content:center;padding:0 .25rem}

/* Shared inputs and buttons */
.w-full{width:100%}
.input{flex:1 1 0%;min-width:0;box-sizing:border-box;height:3rem;border:1px solid #e5e7eb;border-radius:.5rem;padding:.625rem .9rem;font-size:1.125rem;margin-right:0}
.input::placeholder{font-size:1.125rem}
.btn{height:2.5rem;padding:0 1rem;border:none;border-radius:.5rem;background:#003D81;color:#fff;flex:0 0 auto}
.btn-secondary{height:2.5rem;border:none;border-radius:.5rem;background:#e5e7eb;color:#111827;padding:0 .75rem}
.mt-2{margin-top:.5rem}

/* Shared chips/filters */
.filters{display:flex;gap:.5rem;padding:.5rem 0;align-items:center;flex-wrap:wrap}
.chip-input{display:none}
.chip-check{height:2rem;display:inline-flex;align-items:center;padding:0 .75rem;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#374151;cursor:pointer}
.chip-input:checked + .chip-check{background:#003D81;color:#fff;border-color:#003D81}

/* Shared card styles */
.product-item{display:flex;align-items:center;background:#fff;margin:.5rem 0;padding:.75rem;border-radius:.75rem;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.info{flex:1}
.name{font-size:1rem;color:#111827;font-weight:600}
.code{font-size:.75rem;color:#6b7280;margin-top:.125rem}
