/* Utility classes for common styling needs */

/* ========================================
   BORDER UTILITIES
   ======================================== */

/* Simple border utilities (legacy support) */
.has-border-bottom {
    border-bottom: 1px solid #dbdbdb;
}

.has-border-top {
    border-top: 1px solid #dbdbdb;
}

.has-border-left {
    border-left: 1px solid #dbdbdb;
}

.has-border-right {
    border-right: 1px solid #dbdbdb;
}

/* Border Width Utilities - All sides */
.b-0 { border: 0 !important; }
.b-1 { border: 1px solid !important; }
.b-2 { border: 2px solid !important; }
.b-3 { border: 3px solid !important; }
.b-4 { border: 4px solid !important; }
.b-5 { border: 5px solid !important; }

/* Border Top */
.bt-0 { border-top: 0 !important; }
.bt-1 { border-top: 1px solid !important; }
.bt-2 { border-top: 2px solid !important; }
.bt-3 { border-top: 3px solid !important; }
.bt-4 { border-top: 4px solid !important; }
.bt-5 { border-top: 5px solid !important; }

/* Border Right */
.br-0 { border-right: 0 !important; }
.br-1 { border-right: 1px solid !important; }
.br-2 { border-right: 2px solid !important; }
.br-3 { border-right: 3px solid !important; }
.br-4 { border-right: 4px solid !important; }
.br-5 { border-right: 5px solid !important; }

/* Border Bottom */
.bb-0 { border-bottom: 0 !important; }
.bb-1 { border-bottom: 1px solid !important; }
.bb-2 { border-bottom: 2px solid !important; }
.bb-3 { border-bottom: 3px solid !important; }
.bb-4 { border-bottom: 4px solid !important; }
.bb-5 { border-bottom: 5px solid !important; }

/* Border Left */
.bl-0 { border-left: 0 !important; }
.bl-1 { border-left: 1px solid !important; }
.bl-2 { border-left: 2px solid !important; }
.bl-3 { border-left: 3px solid !important; }
.bl-4 { border-left: 4px solid !important; }
.bl-5 { border-left: 5px solid !important; }

/* Border Horizontal (left + right) */
.bx-0 { border-left: 0 !important; border-right: 0 !important; }
.bx-1 { border-left: 1px solid !important; border-right: 1px solid !important; }
.bx-2 { border-left: 2px solid !important; border-right: 2px solid !important; }
.bx-3 { border-left: 3px solid !important; border-right: 3px solid !important; }
.bx-4 { border-left: 4px solid !important; border-right: 4px solid !important; }
.bx-5 { border-left: 5px solid !important; border-right: 5px solid !important; }

/* Border Vertical (top + bottom) */
.by-0 { border-top: 0 !important; border-bottom: 0 !important; }
.by-1 { border-top: 1px solid !important; border-bottom: 1px solid !important; }
.by-2 { border-top: 2px solid !important; border-bottom: 2px solid !important; }
.by-3 { border-top: 3px solid !important; border-bottom: 3px solid !important; }
.by-4 { border-top: 4px solid !important; border-bottom: 4px solid !important; }
.by-5 { border-top: 5px solid !important; border-bottom: 5px solid !important; }

/* Border Color Utilities */
.has-border-grey-lighter { border-color: hsl(var(--bulma-grey-h), var(--bulma-grey-s), 86%) !important; }
.has-border-grey-light { border-color: hsl(var(--bulma-grey-h), var(--bulma-grey-s), 71%) !important; }
.has-border-grey { border-color: hsl(var(--bulma-grey-h), var(--bulma-grey-s), 48%) !important; }
.has-border-grey-dark { border-color: hsl(var(--bulma-grey-h), var(--bulma-grey-s), 29%) !important; }
.has-border-grey-darker { border-color: hsl(var(--bulma-grey-h), var(--bulma-grey-s), 21%) !important; }

.has-border-primary { border-color: hsl(var(--bulma-primary-h), var(--bulma-primary-s, 100%), var(--bulma-primary-l)) !important; }
.has-border-link { border-color: hsl(var(--bulma-link-h), var(--bulma-link-s, 100%), var(--bulma-link-l)) !important; }
.has-border-info { border-color: hsl(var(--bulma-info-h, 204deg), var(--bulma-info-s, 86%), var(--bulma-info-l, 53%)) !important; }
.has-border-success { border-color: hsl(var(--bulma-success-h, 141deg), var(--bulma-success-s, 71%), var(--bulma-success-l, 48%)) !important; }
.has-border-warning { border-color: hsl(var(--bulma-warning-h, 48deg), var(--bulma-warning-s, 100%), var(--bulma-warning-l, 67%)) !important; }
.has-border-danger { border-color: hsl(var(--bulma-danger-h, 348deg), var(--bulma-danger-s, 100%), var(--bulma-danger-l, 61%)) !important; }
.has-border-white { border-color: hsl(var(--bulma-white-h, 0deg), var(--bulma-white-s, 0%), var(--bulma-white-l, 100%)) !important; }
.has-border-black { border-color: hsl(var(--bulma-black-h, 0deg), var(--bulma-black-s, 0%), var(--bulma-black-l, 4%)) !important; }
.has-border-light { border-color: hsl(var(--bulma-light-h, 0deg), var(--bulma-light-s, 0%), var(--bulma-light-l, 96%)) !important; }
.has-border-dark { border-color: hsl(var(--bulma-dark-h, 0deg), var(--bulma-dark-s, 0%), var(--bulma-dark-l, 21%)) !important; }

/* Border Style Utilities */
.border-solid { border-style: solid !important; }
.border-dashed { border-style: dashed !important; }
.border-dotted { border-style: dotted !important; }
.border-double { border-style: double !important; }
.border-none { border-style: none !important; }

/* Border Radius Utilities */
.border-radius-0 { border-radius: 0 !important; }
.border-radius-sm { border-radius: 2px !important; }
.border-radius { border-radius: 4px !important; }
.border-radius-md { border-radius: 6px !important; }
.border-radius-lg { border-radius: 8px !important; }
.border-radius-xl { border-radius: 12px !important; }
.border-radius-rounded { border-radius: 290486px !important; }

/* Responsive Border Utilities */
@media screen and (max-width: 768px) {
  .b-mobile-0 { border: 0 !important; }
  .bt-mobile-0 { border-top: 0 !important; }
  .br-mobile-0 { border-right: 0 !important; }
  .bb-mobile-0 { border-bottom: 0 !important; }
  .bl-mobile-0 { border-left: 0 !important; }
}

@media screen and (min-width: 769px) {
  .b-tablet-0 { border: 0 !important; }
  .bt-tablet-0 { border-top: 0 !important; }
  .br-tablet-0 { border-right: 0 !important; }
  .bb-tablet-0 { border-bottom: 0 !important; }
  .bl-tablet-0 { border-left: 0 !important; }
}

@media screen and (min-width: 1024px) {
  .b-desktop-0 { border: 0 !important; }
  .bt-desktop-0 { border-top: 0 !important; }
  .br-desktop-0 { border-right: 0 !important; }
  .bb-desktop-0 { border-bottom: 0 !important; }
  .bl-desktop-0 { border-left: 0 !important; }
}

/* ========================================
   BACKGROUND UTILITIES
   ======================================== */

.has-background-light-blue {
    background-color: #f2f9ff;
}

/* ========================================
   TEXT UTILITIES
   ======================================== */

.hover-underline {
    transition: text-decoration 0.2s ease;
}

.hover-underline:hover {
    text-decoration: underline;
}

/* ========================================
   FORM UTILITIES
   ======================================== */

label .asterisk {
    display: none;
}
