/* ======================================================
   DISPLAY
====================================================== */

.mjv2-hidden{ display:none !important; }
.mjv2-block{ display:block !important; }
.mjv2-inline-block{ display:inline-block !important; }
.mjv2-flex{ display:flex !important; }
.mjv2-inline-flex{ display:inline-flex !important; }
.mjv2-grid-display{ display:grid !important; }

/* ======================================================
   FLEX HELPERS
====================================================== */

.mjv2-items-start{ align-items:flex-start !important; }
.mjv2-items-center{ align-items:center !important; }
.mjv2-items-end{ align-items:flex-end !important; }

.mjv2-justify-start{ justify-content:flex-start !important; }
.mjv2-justify-center{ justify-content:center !important; }
.mjv2-justify-end{ justify-content:flex-end !important; }
.mjv2-justify-between{ justify-content:space-between !important; }

.mjv2-flex-wrap{ flex-wrap:wrap !important; }
.mjv2-flex-nowrap{ flex-wrap:nowrap !important; }
.mjv2-flex-col{ flex-direction:column !important; }
.mjv2-flex-row{ flex-direction:row !important; }

.mjv2-flex-1{ flex:1 1 0% !important; }
.mjv2-flex-auto{ flex:1 1 auto !important; }
.mjv2-flex-none{ flex:none !important; }

/* ======================================================
   GRID HELPERS
====================================================== */

.mjv2-grid-2{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
.mjv2-grid-3{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
.mjv2-grid-4{ grid-template-columns:repeat(4,minmax(0,1fr)) !important; }

/* ======================================================
   GAP
====================================================== */

.mjv2-gap-0{ gap:0 !important; }
.mjv2-gap-xs{ gap:var(--mjv2-gap-xs) !important; }
.mjv2-gap-sm{ gap:var(--mjv2-gap-sm) !important; }
.mjv2-gap-md{ gap:var(--mjv2-gap-md) !important; }
.mjv2-gap-lg{ gap:var(--mjv2-gap-lg) !important; }
.mjv2-gap-xl{ gap:var(--mjv2-gap-xl) !important; }

/* ======================================================
   WIDTH / HEIGHT
====================================================== */

.mjv2-w-full{ width:100% !important; }
.mjv2-w-auto{ width:auto !important; }
.mjv2-h-full{ height:100% !important; }
.mjv2-h-auto{ height:auto !important; }

.mjv2-min-w-0{ min-width:0 !important; }
.mjv2-min-h-0{ min-height:0 !important; }

/* ======================================================
   TEXT ALIGN
====================================================== */

.mjv2-text-left{ text-align:left !important; }
.mjv2-text-center{ text-align:center !important; }
.mjv2-text-right{ text-align:right !important; }

/* ======================================================
   TEXT COLOR
====================================================== */

.mjv2-text{ color:var(--mjv2-text) !important; }
.mjv2-text-muted{ color:var(--mjv2-muted) !important; }
.mjv2-text-soft{ color:var(--mjv2-text-soft) !important; }
.mjv2-text-primary{ color:var(--mjv2-primary) !important; }
.mjv2-text-success{ color:var(--mjv2-success) !important; }
.mjv2-text-warning{ color:var(--mjv2-warning) !important; }
.mjv2-text-danger{ color:var(--mjv2-danger) !important; }

/* ======================================================
   FONT SIZE
====================================================== */

.mjv2-fs-xs{ font-size:12px !important; }
.mjv2-fs-sm{ font-size:13px !important; }
.mjv2-fs-md{ font-size:14px !important; }
.mjv2-fs-lg{ font-size:16px !important; }
.mjv2-fs-xl{ font-size:18px !important; }

/* ======================================================
   FONT WEIGHT
====================================================== */

.mjv2-fw-normal{ font-weight:400 !important; }
.mjv2-fw-medium{ font-weight:500 !important; }
.mjv2-fw-semibold{ font-weight:600 !important; }
.mjv2-fw-bold{ font-weight:700 !important; }
.mjv2-fw-xbold{ font-weight:800 !important; }

/* ======================================================
   LINE HEIGHT
====================================================== */

.mjv2-lh-tight{ line-height:1.25 !important; }
.mjv2-lh-normal{ line-height:1.5 !important; }
.mjv2-lh-relaxed{ line-height:1.7 !important; }

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

.mjv2-bg-transparent{ background:transparent !important; }
.mjv2-bg-surface{ background:var(--mjv2-surface) !important; }
.mjv2-bg-card{ background:var(--mjv2-card) !important; }

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

.mjv2-border{ border:1px solid var(--mjv2-border) !important; }
.mjv2-border-0{ border:0 !important; }
.mjv2-border-strong{ border:1px solid var(--mjv2-border-strong) !important; }

.mjv2-rounded-sm{ border-radius:var(--mjv2-radius-sm) !important; }
.mjv2-rounded-md{ border-radius:var(--mjv2-radius-md) !important; }
.mjv2-rounded-lg{ border-radius:var(--mjv2-radius-lg) !important; }
.mjv2-rounded-pill{ border-radius:var(--mjv2-radius-pill) !important; }

/* ======================================================
   SHADOW
====================================================== */

.mjv2-shadow{ box-shadow:var(--mjv2-shadow) !important; }
.mjv2-shadow-lg{ box-shadow:var(--mjv2-shadow-lg) !important; }
.mjv2-shadow-soft{ box-shadow:var(--mjv2-shadow-soft) !important; }
.mjv2-shadow-none{ box-shadow:none !important; }

/* ======================================================
   OVERFLOW
====================================================== */

.mjv2-overflow-hidden{ overflow:hidden !important; }
.mjv2-overflow-auto{ overflow:auto !important; }
.mjv2-overflow-x-auto{ overflow-x:auto !important; }
.mjv2-overflow-y-auto{ overflow-y:auto !important; }

/* ======================================================
   POSITION
====================================================== */

.mjv2-relative{ position:relative !important; }
.mjv2-absolute{ position:absolute !important; }
.mjv2-sticky{ position:sticky !important; }

/* ======================================================
   MARGIN
====================================================== */

.mjv2-m-0{ margin:0 !important; }

.mjv2-mt-0{ margin-top:0 !important; }
.mjv2-mt-xs{ margin-top:var(--mjv2-gap-xs) !important; }
.mjv2-mt-sm{ margin-top:var(--mjv2-gap-sm) !important; }
.mjv2-mt-md{ margin-top:var(--mjv2-gap-md) !important; }
.mjv2-mt-lg{ margin-top:var(--mjv2-gap-lg) !important; }
.mjv2-mt-xl{ margin-top:var(--mjv2-gap-xl) !important; }

.mjv2-mb-0{ margin-bottom:0 !important; }
.mjv2-mb-xs{ margin-bottom:var(--mjv2-gap-xs) !important; }
.mjv2-mb-sm{ margin-bottom:var(--mjv2-gap-sm) !important; }
.mjv2-mb-md{ margin-bottom:var(--mjv2-gap-md) !important; }
.mjv2-mb-lg{ margin-bottom:var(--mjv2-gap-lg) !important; }
.mjv2-mb-xl{ margin-bottom:var(--mjv2-gap-xl) !important; }

.mjv2-ml-auto{ margin-left:auto !important; }
.mjv2-mr-auto{ margin-right:auto !important; }

/* ======================================================
   PADDING
====================================================== */

.mjv2-p-0{ padding:0 !important; }
.mjv2-p-xs{ padding:var(--mjv2-gap-xs) !important; }
.mjv2-p-sm{ padding:var(--mjv2-gap-sm) !important; }
.mjv2-p-md{ padding:var(--mjv2-gap-md) !important; }
.mjv2-p-lg{ padding:var(--mjv2-gap-lg) !important; }

.mjv2-px-0{ padding-left:0 !important; padding-right:0 !important; }
.mjv2-px-sm{ padding-left:var(--mjv2-gap-sm) !important; padding-right:var(--mjv2-gap-sm) !important; }
.mjv2-px-md{ padding-left:var(--mjv2-gap-md) !important; padding-right:var(--mjv2-gap-md) !important; }

.mjv2-py-0{ padding-top:0 !important; padding-bottom:0 !important; }
.mjv2-py-sm{ padding-top:var(--mjv2-gap-sm) !important; padding-bottom:var(--mjv2-gap-sm) !important; }
.mjv2-py-md{ padding-top:var(--mjv2-gap-md) !important; padding-bottom:var(--mjv2-gap-md) !important; }

/* ======================================================
   VISUAL HELPERS
====================================================== */

.mjv2-opacity-0{ opacity:0 !important; }
.mjv2-opacity-50{ opacity:.5 !important; }
.mjv2-opacity-75{ opacity:.75 !important; }
.mjv2-opacity-100{ opacity:1 !important; }

.mjv2-pointer-none{ pointer-events:none !important; }
.mjv2-cursor-pointer{ cursor:pointer !important; }

/* ======================================================
   TRUNCATION
====================================================== */

.mjv2-truncate{
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.mjv2-line-clamp-1{
  display:-webkit-box !important;
  -webkit-line-clamp:1 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
}

.mjv2-line-clamp-2{
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
}

.mjv2-line-clamp-3{
  display:-webkit-box !important;
  -webkit-line-clamp:3 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
}

/* ======================================================
   RESPONSIVE HELPERS
====================================================== */

@media (max-width:768px){
  .mjv2-md-hidden{ display:none !important; }
  .mjv2-md-block{ display:block !important; }
}

@media (max-width:480px){
  .mjv2-sm-hidden{ display:none !important; }
  .mjv2-sm-block{ display:block !important; }
}