/* Responsive Utilities */

/* Typography Responsive */
.h3-responsive {
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.2;
}

@media (max-width: 768px) {
  .h3-responsive {
    font-size: 1.5rem;
  }
}

@media (max-width: 576px) {
  .h3-responsive {
    font-size: 1.25rem;
  }
}

.h4-responsive {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.2;
}

@media (max-width: 768px) {
  .h4-responsive {
    font-size: 1.25rem;
  }
}

@media (max-width: 576px) {
  .h4-responsive {
    font-size: 1.1rem;
  }
}

.h2-responsive {
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.2;
}

@media (max-width: 768px) {
  .h2-responsive {
    font-size: 1.75rem;
  }
}

@media (max-width: 576px) {
  .h2-responsive {
    font-size: 1.5rem;
  }
}

/* Font Size Responsive */
.fs-responsive-base {
  font-size: 1rem;
}

.fs-responsive-lg {
  font-size: 1.25rem;
}

.fs-responsive-sm {
  font-size: 0.875rem;
}

.fs-responsive-xs {
  font-size: 0.75rem;
}

@media (max-width: 768px) {
  .fs-responsive-base {
    font-size: 0.9rem;
  }
  
  .fs-responsive-lg {
    font-size: 1.1rem;
  }
  
  .fs-responsive-sm {
    font-size: 0.8rem;
  }
  
  .fs-responsive-xs {
    font-size: 0.7rem;
  }
}

@media (max-width: 576px) {
  .fs-responsive-base {
    font-size: 0.85rem;
  }
  
  .fs-responsive-lg {
    font-size: 1rem;
  }
  
  .fs-responsive-sm {
    font-size: 0.75rem;
  }
  
  .fs-responsive-xs {
    font-size: 0.65rem;
  }
}

/* Padding Responsive */
.p-responsive {
  padding: 1.5rem;
}

@media (max-width: 768px) {
  .p-responsive {
    padding: 1rem;
  }
}

@media (max-width: 576px) {
  .p-responsive {
    padding: 0.75rem;
  }
}

/* Card Responsive */
.card-responsive {
  border: 1px solid rgba(67, 89, 113, 0.12);
  border-radius: 0.375rem;
  box-shadow: 0 2px 6px 0 rgba(67, 89, 113, 0.12);
  background-color: #fff;
  transition: all 0.2s ease-in-out;
}

@media (max-width: 768px) {
  .card-responsive {
    border-radius: 0.25rem;
    box-shadow: 0 1px 3px 0 rgba(67, 89, 113, 0.12);
  }
}

.card-responsive .card-body {
  padding: 1.5rem;
}

@media (max-width: 768px) {
  .card-responsive .card-body {
    padding: 1rem;
  }
}

@media (max-width: 576px) {
  .card-responsive .card-body {
    padding: 0.75rem;
  }
}

/* Button Responsive */
.btn-responsive {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  border-radius: 0.25rem;
  transition: all 0.15s ease-in-out;
}

@media (max-width: 768px) {
  .btn-responsive {
    padding: 0.375rem 0.75rem;
    font-size: 0.8rem;
  }
}

@media (max-width: 576px) {
  .btn-responsive {
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
  }
}

/* Table Responsive */
.table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 768px) {
  .table-responsive table {
    font-size: 0.875rem;
  }
  
  .table-responsive th,
  .table-responsive td {
    padding: 0.5rem 0.25rem;
  }
}

@media (max-width: 576px) {
  .table-responsive table {
    font-size: 0.8rem;
  }
  
  .table-responsive th,
  .table-responsive td {
    padding: 0.375rem 0.125rem;
  }
}

/* Modal Responsive */
.modal-responsive .modal-dialog {
  margin: 1.75rem auto;
}

@media (max-width: 768px) {
  .modal-responsive .modal-dialog {
    margin: 1rem auto;
    max-width: calc(100% - 2rem);
  }
}

@media (max-width: 576px) {
  .modal-responsive .modal-dialog {
    margin: 0.5rem auto;
    max-width: calc(100% - 1rem);
  }
}

/* Form Responsive */
.form-responsive .form-group {
  margin-bottom: 1rem;
}

@media (max-width: 576px) {
  .form-responsive .form-group {
    margin-bottom: 0.75rem;
  }
}

.form-responsive .form-control {
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
}

@media (max-width: 576px) {
  .form-responsive .form-control {
    padding: 0.375rem 0.5rem;
    font-size: 0.8rem;
  }
}

/* Spacing Utilities */
.gap-2 {
  gap: 0.5rem !important;
}

.gap-3 {
  gap: 1rem !important;
}

@media (max-width: 576px) {
  .gap-2 {
    gap: 0.375rem !important;
  }
  
  .gap-3 {
    gap: 0.75rem !important;
  }
}

/* Text Utilities */
.text-break {
  word-wrap: break-word !important;
  word-break: break-word !important;
}

.fw-bold {
  font-weight: 700 !important;
}

/* Color Utilities */
.text-primary {
  color: #696cff !important;
}

.text-success {
  color: #71dd37 !important;
}

.text-muted {
  color: #a1acb8 !important;
}