   .loader {
    width: 48px;
    height: 48px;
    border: 5px solid #FFF;
    border-bottom-color: #FF3D00;
    border-radius: 50%;
    display: inline-block;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
    }
    @keyframes rotation {
      0% { transform: rotate(0deg); }
      100% { transform: rotate(360deg); }
    }
    
    input[type="text"], textarea{
        outline: none;
        border: none;
    }
    input[type="text"]::placeholder, textarea::placeholder{
        color: rgb(255, 255, 255);
    }

/* Home Page: Products Grid */
body { overflow-x: hidden; }
.products-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  padding: 16px;
}
/* Extra small screens: single column */
@media (max-width: 400px){
  .products-grid { grid-template-columns: 1fr; }
}

/* Product Card */
.product-card {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  transition: transform .2s ease, box-shadow .2s ease;
  display: flex;
  flex-direction: column;
}
.product-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}
.product-image {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  background: #fafafa;
  display: block;
}
.product-body { padding: 12px; display: flex; flex-direction: column; gap: 6px; }
.product-title { font-size: 14px; font-weight: 600; color: #222; height: 3.2em; overflow: hidden; }
.product-category { font-size: 12px; color: #6c757d; }
.product-price { font-size: 14px; }
.product-actions { margin-top: auto; display: flex; gap: 8px; }

/* Buttons */
.btn-add { width: 100%; }
.btn-remove { width: 100%; }


/* Responsive breakpoints for products grid */
@media (min-width: 768px) {
  .products-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 992px) {
  .products-grid { grid-template-columns: repeat(4, 1fr); }
}


/* Filters: normal flow (left column on md+ via Bootstrap grid) */
/* Search input */
.search-input{
  width: 80%;
  background-color: #FF3D00;
  color: #fff;
}
.search-input::placeholder{ color: #fff; }

/* Filters base */
.filters{
  max-height: 90vh;
  position: sticky;
  top: 10px;
  z-index: 1030;
  padding: 12px;
  transition: transform .5s ease;
  gap: 12px;
  background: rgba(33, 37, 41, 0.6); /* semi-transparent */
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.15);
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}
.filters > div{ display: flex; align-items: center; justify-content: space-between; }
.filters-header{ display:flex; align-items:center; justify-content:space-between; }
.filters-title{ font-weight: 700; }
.filters-close{ line-height: 1; }

/* Small screens: slide-in panel */
@media (max-width: 900px){
  .filters{
    position: fixed;
    top: 10px;
    left: 0;
    height: 90vh;
    width: 260px;
    transform: translateX(-100%);
    display: block; /* base state hidden via transform */
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }
  .filters.is-open{
    transform: translateX(0%);
  }
  /* show close button at top right inside panel */
  .filters .filters-close{ position: absolute; top: 8px; right: 8px; }
}