/* ===== Grid ===== */
.row { display: flex; flex-wrap: wrap; gap: 0; }
.col-12 { flex: 0 0 100%; max-width: 100%; }
.col-lg-6 { flex: 0 0 100%; max-width: 100%; }
@media (min-width: 992px) {
  .col-lg-6 { flex: 0 0 50%; max-width: 50%; }
}
/* simple gutter fallback for g-4 */
.g-4 { gap: 1.5rem; }

/* ===== Alignment / sizing / text ===== */
.align-items-start { align-items: flex-start; }
.h-100 { height: 100%; }
.text-center { text-align: center; }
.text-end { text-align: right; }

/* Spacing utilities (subset) */
.pe-2 { padding-right: .5rem; }
.pb-1 { padding-bottom: .25rem; }

/* ===== Card ===== */
.card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.125);
  border-radius: .5rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.card-header {
  padding: .75rem 1rem;
  border-bottom: 1px solid rgba(0,0,0,.125);
  background: #f8f9fa;
}
.card-body { padding: 1rem; }

/* ===== Buttons ===== */
.btn {
  display: inline-block;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  border: 1px solid transparent;
  padding: .375rem .75rem;
  border-radius: .375rem;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.btn-primary {
  color: #fff;
  background-color: #0d6efd;
  border-color: #0d6efd;
}
.btn-primary:hover {
  background-color: #0b5ed7;
  border-color: #0a58ca;
}

/* ===== Alerts ===== */
.alert {
  position: relative;
  padding: .75rem 1rem;
  border: 1px solid transparent;
  border-radius: .375rem;
  margin-bottom: 1rem;
}
.alert-success {
  color: #0f5132;
  background-color: #d1e7dd;
  border-color: #badbcc;
}
.alert-danger {
  color: #842029;
  background-color: #f8d7da;
  border-color: #f5c2c7;
}

/* ===== Helpers for your plugin (optional) ===== */
.package-card.h-100 { height: 100%; }
.mini-edit.subtle-edit {
  font-size: .875rem;
  opacity: .7;
  text-decoration: none;
}
.mini-edit.subtle-edit:hover { opacity: 1; text-decoration: underline; }
