/**
 * Utility Classes
 * 
 * Common utility classes to eliminate repetitive inline styles.
 * Use these instead of inline style attributes where possible.
 */

/* Form Width Utilities */
.w-form-narrow { max-width: 24rem; }
.w-form-wide { max-width: 48rem; }
.w-form-max { max-width: 64rem; }

/* Display Utilities */
.hidden { display: none !important; }
.block { display: block !important; }
.inline-block { display: inline-block !important; }

/* Icon Size Utilities */
.icon-xs { width: 12px; height: 12px; }
.icon-sm { width: 16px; height: 16px; }
.icon-md { width: 22px; height: 22px; }
.icon-lg { width: 28px; height: 28px; }
.icon-xl { width: 32px; height: 32px; }

/* Icon Alignment */
.icon-valign { vertical-align: middle; }
.icon-valign-text { vertical-align: -3px; }

/* Table Column Width Utilities */
.col-w-20 { width: 20%; }
.col-w-35 { width: 35%; }
.col-w-150 { width: 150px; }
.col-w-200 { width: 200px; }

/* Z-Index Utilities */
.z-100 { z-index: 100; }
.z-500 { z-index: 500; }
.z-1000 { z-index: 1000; }

/* Position Utilities */
.pos-absolute { position: absolute; }
.pos-relative { position: relative; }

/* Overflow Utilities */
.overflow-auto { overflow: auto; }
.overflow-y-auto { overflow-y: auto; }

/* Max Height Utilities */
.max-h-200 { max-height: 200px; }
.max-h-240 { max-height: 240px; }

/* Object Fit Utilities */
.obj-cover { object-fit: cover; }
.obj-contain { object-fit: contain; }

/* Border Radius Utilities */
.rounded-sm { border-radius: 2px; }
.rounded-md { border-radius: 4px; }

/* Cursor Utilities */
.cursor-pointer { cursor: pointer; }
.cursor-help { cursor: help; }

/* Word Break Utilities */
.word-break { word-break: break-word; }
.white-space-pre-wrap { white-space: pre-wrap; }

/* Width Auto */
.w-auto { width: auto !important; }
.w-full { width: 100%; }

/* Margin Top Zero (useful for stacking elements) */
.mt-0 { margin-top: 0 !important; }

/* Breadcrumb Styling */
.breadcrumb {
  background: none;
  padding: 0 0 0.75rem 0; /* space below breadcrumb row */
  margin: -0.5rem 0 1rem 0;  /* pull up closer to header, add space below */
  border-bottom: 1px solid #dee2e6; /* subtle separator */
  font-size: 0.875rem; /* smaller font */
}

.breadcrumb-item + .breadcrumb-item::before {
  content: "|";
  padding: 0 0.5rem;
}

.breadcrumb-item a {
  text-decoration: none;
}

.breadcrumb-item a:hover {
  text-decoration: underline;
}

/* Print Utilities */
@media print {
  /* Hide elements that shouldn't be printed */
  .no-print,
  header,
  footer,
  .site-header,
  .site-footer,
  nav,
  .navbar,
  .btn,
  button {
    display: none !important;
  }
  
  /* Ensure body uses full width */
  body {
    margin: 0;
    padding: 0;
  }
  
  /* Ensure main content uses full width */
  main,
  .container,
  .container-fluid {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  
  .content-pad {
    padding: 0 !important;
  }
  
  /* Better page breaks */
  .content-section {
    page-break-inside: avoid;
  }
  
  h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid;
  }
  
  /* Optimize table printing */
  table {
    page-break-inside: auto;
  }
  
  tr {
    page-break-inside: avoid;
    page-break-after: auto;
  }
}
