/* =========================================================
   TechGeeks — Shared Responsive Utilities
   Loaded after app.css and before pwa.css
   ========================================================= */

/* Overflow safety */
.tg-safe,
.tg-safe *{
  min-width:0;
  box-sizing:border-box;
}

/* Shared scroll table wrapper */
.tg-scroll-x{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}

/* Shared no-page-spill table */
.tg-wide-table{
  width:100%;
  min-width:720px;
  border-collapse:separate;
  border-spacing:0;
}

/* Shared action row */
.tg-inline-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
  white-space:nowrap;
}

.tg-inline-actions .btn{
  flex:0 0 auto;
}

/* Shared responsive filter */
.tg-filter-grid{
  display:grid;
  grid-template-columns:minmax(260px, 1.6fr) repeat(auto-fit, minmax(180px, .8fr)) auto;
  gap:10px;
  align-items:end;
}

.tg-filter-actions{
  display:flex;
  gap:8px;
  align-items:end;
  flex-wrap:nowrap;
}

@media (max-width:980px){
  .tg-filter-grid{
    grid-template-columns:1fr 1fr;
  }

  .tg-filter-search{
    grid-column:1 / -1;
  }

  .tg-filter-actions{
    grid-column:1 / -1;
  }
}

@media (max-width:520px){
  .tg-filter-grid{
    grid-template-columns:1fr;
  }

  .tg-filter-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .tg-filter-actions .btn{
    width:100%;
    justify-content:center;
  }
}

/* Shared form grid */
.tg-auto-grid{
  display:grid;
  gap:12px;
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

@media (max-width:1100px){
  .tg-auto-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:620px){
  .tg-auto-grid{
    grid-template-columns:1fr;
  }
}