.static {
    position: static !important;
}
.relative {
    position: relative !important;
}
.absolute {
    position: absolute !important;
}
.absolute-full {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.block {
    display: block !important;
}
.inline {
    display: inline !important;
}
.inline-block {
    display: inline-block !important;
}

.no-border {
    border: none !important;
}
.no-resize {
    resize: none !important;
}
.no-wrap {
    white-space: nowrap !important;
}
.no-pointer-events {
    pointer-events: none;
}
.auto-pointer-events {
    pointer-events: auto;
}

.height-100 {
    height: 100% !important;
}

/* width */
.w-3xs { width: 192px !important; }
.w-2xs { width: 256px !important; }
.w-xs { width: 320px !important; }
.w-sm { width: 384px !important; }
.w-md { width: 448px !important; }
.w-lg { width: 512px !important; }
.w-xl { width: 576px !important; }
.w-2xl { width: 672px !important; }
.w-3xl { width: 768px !important; }
.w-4xl { width: 864px !important; }
.w-5xl { width: 960px !important; }
.w-full, .width-100 { width: 100% !important; }
.w-auto, .width-auto { width: auto !important; }
.width-80 { width: 80% !important; }
.width-90 { width: 90% !important; }

/* max-width */
.max-w-3xs { max-width: 192px !important; }
.max-w-2xs { max-width: 256px !important; }
.max-w-xs { max-width: 320px !important; }
.max-w-sm { max-width: 384px !important; }
.max-w-md { max-width: 448px !important; }
.max-w-lg { max-width: 512px !important; }
.max-w-xl { max-width: 576px !important; }
.max-w-2xl { max-width: 672px !important; }
.max-w-3xl { max-width: 768px !important; }
.max-w-4xl { max-width: 864px !important; }
.max-w-5xl { max-width: 960px !important; }
.max-w-80 { max-width: 80% !important; }
.max-w-90 { max-width: 90% !important; }
.max-w-100 { max-width: 100% !important; }

.text-left {
    text-align: left !important;
}
.text-center {
    text-align: center !important;
}
.text-right {
    text-align: right !important;
}
.text-underline {
    text-decoration: underline;
}
.hover-text-underline { cursor: pointer; }
.hover-text-underline:hover { text-decoration: underline; }
.hover-bg-light-grey:hover { background-color: #f7f7f7; }

.break-all {
    word-break: break-all;
}
.keep-all {
    word-break: keep-all;
}

.no-select {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.cursor-pointer {
    cursor: pointer;
}
.cursor-default {
    cursor: default;
}
.cursor-zoom-in {
    cursor: zoom-in;
}

/* flex utils */
.flex {
    display: flex !important;
    align-items: flex-start;
}
.flex-1 {
    flex: 1 !important;
}
.flex-wrap {
    flex-wrap: wrap;
}
.flex-center {
    align-items: center;
    justify-content: center;
}
.flex-end {
    justify-content: flex-end;
}
.flex-grow-1 {
    flex-grow: 1;
}
.flex-align-items-start {
    align-items: flex-start;
}
.flex-align-items-center {
    align-items: center;
}
.flex-align-items-end {
    align-items: flex-end;
}
.flex-align-self-stretch {
    align-self: stretch;
}
.flex-row {
    flex-direction: row;
}
.flex-col {
    flex-direction: column;
}

.overflow-hidden {
    overflow: hidden;
}
.overflow-auto {
    overflow: auto;
}

.table-vertical-middle th, .table-vertical-middle td {
    vertical-align: middle !important;
}
.vertical-top { vertical-align: top !important; }
.vertical-middle { vertical-align: middle !important; }
.vertical-bottom { vertical-align: bottom !important; }

/* padding utils */
.p-0 { padding: 0 !important; }
.pt-0 { padding-top: 0 !important; }
.pr-0 { padding-right: 0 !important; }
.pb-0 { padding-bottom: 0 !important; }
.pl-0 { padding-left: 0 !important; }
.px-0 { padding-left: 0 !important; padding-right: 0 !important; }
.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.p-5 { padding: 5px !important; }
.pt-5 { padding-top: 5px !important; }
.pr-5 { padding-right: 5px !important; }
.pb-5 { padding-bottom: 5px !important; }
.pl-5 { padding-left: 5px !important; }
.px-5 { padding-left: 5px !important; padding-right: 5px !important; }
.py-5 { padding-top: 5px !important; padding-bottom: 5px !important; }
.p-10 { padding: 10px !important; }
.p-10 { padding: 10px !important; }
.pt-10 { padding-top: 10px !important; }
.pr-10 { padding-right: 10px !important; }
.pb-10 { padding-bottom: 10px !important; }
.pl-10 { padding-left: 10px !important; }
.px-10 { padding-left: 10px !important; padding-right: 10px !important; }
.py-10 { padding-top: 10px !important; padding-bottom: 10px !important; }
.p-15 { padding: 15px !important; }
.p-15 { padding: 15px !important; }
.pt-15 { padding-top: 15px !important; }
.pr-15 { padding-right: 15px !important; }
.pb-15 { padding-bottom: 15px !important; }
.pl-15 { padding-left: 15px !important; }
.px-15 { padding-left: 15px !important; padding-right: 15px !important; }
.py-15 { padding-top: 15px !important; padding-bottom: 15px !important; }
.p-20 { padding: 20px !important; }
.p-20 { padding: 20px !important; }
.p-20 { padding: 20px !important; }
.pt-20 { padding-top: 20px !important; }
.pr-20 { padding-right: 20px !important; }
.pb-20 { padding-bottom: 20px !important; }
.pl-20 { padding-left: 20px !important; }
.px-20 { padding-left: 20px !important; padding-right: 20px !important; }
.py-20 { padding-top: 20px !important; padding-bottom: 20px !important; }
.p-30 { padding: 30px !important; }
.p-30 { padding: 30px !important; }
.p-30 { padding: 30px !important; }
.p-30 { padding: 30px !important; }
.pt-30 { padding-top: 30px !important; }
.pr-30 { padding-right: 30px !important; }
.pb-30 { padding-bottom: 30px !important; }
.pl-30 { padding-left: 30px !important; }
.px-30 { padding-left: 30px !important; padding-right: 30px !important; }
.py-30 { padding-top: 30px !important; padding-bottom: 30px !important; }
.p-40 { padding: 40px !important; }
.p-40 { padding: 40px !important; }
.p-40 { padding: 40px !important; }
.p-40 { padding: 40px !important; }
.pt-40 { padding-top: 40px !important; }
.pr-40 { padding-right: 40px !important; }
.pb-40 { padding-bottom: 40px !important; }
.pl-40 { padding-left: 40px !important; }
.px-40 { padding-left: 40px !important; padding-right: 40px !important; }
.py-40 { padding-top: 40px !important; padding-bottom: 40px !important; }
.p-50 { padding: 50px !important; }
.p-50 { padding: 50px !important; }
.p-50 { padding: 50px !important; }
.p-50 { padding: 50px !important; }
.pt-50 { padding-top: 50px !important; }
.pr-50 { padding-right: 50px !important; }
.pb-50 { padding-bottom: 50px !important; }
.pl-50 { padding-left: 50px !important; }
.px-50 { padding-left: 50px !important; padding-right: 50px !important; }
.py-50 { padding-top: 50px !important; padding-bottom: 50px !important; }

/* margin utils */
.m-0 { margin: 0 !important; }
.mt-0 { margin-top: 0 !important; }
.mr-0 { margin-right: 0 !important; }
.mb-0 { margin-bottom: 0 !important; }
.ml-0 { margin-left: 0 !important; }
.mx-0 { margin-left: 0 !important; margin-right: 0 !important; }
.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
.m-5 { margin: 5px !important; }
.mt-5 { margin-top: 5px !important; }
.mr-5 { margin-right: 5px !important; }
.mb-5 { margin-bottom: 5px !important; }
.ml-5 { margin-left: 5px !important; }
.mx-5 { margin-left: 5px !important; margin-right: 5px !important; }
.my-5 { margin-top: 5px !important; margin-bottom: 5px !important; }
.m-10 { margin: 10px !important; }
.m-10 { margin: 10px !important; }
.mt-10 { margin-top: 10px !important; }
.mr-10 { margin-right: 10px !important; }
.mb-10 { margin-bottom: 10px !important; }
.ml-10 { margin-left: 10px !important; }
.mx-10 { margin-left: 10px !important; margin-right: 10px !important; }
.my-10 { margin-top: 10px !important; margin-bottom: 10px !important; }
.m-15 { margin: 15px !important; }
.m-15 { margin: 15px !important; }
.mt-15 { margin-top: 15px !important; }
.mr-15 { margin-right: 15px !important; }
.mb-15 { margin-bottom: 15px !important; }
.ml-15 { margin-left: 15px !important; }
.mx-15 { margin-left: 15px !important; margin-right: 15px !important; }
.my-15 { margin-top: 15px !important; margin-bottom: 15px !important; }
.m-20 { margin: 20px !important; }
.m-20 { margin: 20px !important; }
.m-20 { margin: 20px !important; }
.mt-20 { margin-top: 20px !important; }
.mr-20 { margin-right: 20px !important; }
.mb-20 { margin-bottom: 20px !important; }
.ml-20 { margin-left: 20px !important; }
.mx-20 { margin-left: 20px !important; margin-right: 20px !important; }
.my-20 { margin-top: 20px !important; margin-bottom: 20px !important; }
.m-30 { margin: 30px !important; }
.m-30 { margin: 30px !important; }
.m-30 { margin: 30px !important; }
.m-30 { margin: 30px !important; }
.mt-30 { margin-top: 30px !important; }
.mr-30 { margin-right: 30px !important; }
.mb-30 { margin-bottom: 30px !important; }
.ml-30 { margin-left: 30px !important; }
.mx-30 { margin-left: 30px !important; margin-right: 30px !important; }
.my-30 { margin-top: 30px !important; margin-bottom: 30px !important; }
.m-40 { margin: 40px !important; }
.m-40 { margin: 40px !important; }
.m-40 { margin: 40px !important; }
.m-40 { margin: 40px !important; }
.mt-40 { margin-top: 40px !important; }
.mr-40 { margin-right: 40px !important; }
.mb-40 { margin-bottom: 40px !important; }
.ml-40 { margin-left: 40px !important; }
.mx-40 { margin-left: 40px !important; margin-right: 40px !important; }
.my-40 { margin-top: 40px !important; margin-bottom: 40px !important; }
.m-50 { margin: 50px !important; }
.m-50 { margin: 50px !important; }
.m-50 { margin: 50px !important; }
.m-50 { margin: 50px !important; }
.mt-50 { margin-top: 50px !important; }
.mr-50 { margin-right: 50px !important; }
.mb-50 { margin-bottom: 50px !important; }
.ml-50 { margin-left: 50px !important; }
.mx-50 { margin-left: 50px !important; margin-right: 50px !important; }
.my-50 { margin-top: 50px !important; margin-bottom: 50px !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }

/* font utils */
.font-10 { font-size: 10px !important; }
.font-11 { font-size: 11px !important; }
.font-12 { font-size: 12px !important; }
.font-13 { font-size: 13px !important; }
.font-14 { font-size: 14px !important; }
.font-15 { font-size: 15px !important; }
.font-16 { font-size: 16px !important; }
.font-17 { font-size: 17px !important; }
.font-18 { font-size: 18px !important; }
.font-19 { font-size: 19px !important; }
.font-20 { font-size: 20px !important; }
.font-bold { font-weight: bold !important; }
.font-normal { font-weight: normal !important; }

/* opacity utils */
.opacity-0 { opacity: 0 !important; }
.opacity-10 { opacity: 0.1 !important; }
.opacity-20 { opacity: 0.2 !important; }
.opacity-30 { opacity: 0.3 !important; }
.opacity-40 { opacity: 0.4 !important; }
.opacity-50 { opacity: 0.5 !important; }
.opacity-60 { opacity: 0.6 !important; }
.opacity-70 { opacity: 0.7 !important; }
.opacity-80 { opacity: 0.8 !important; }
.opacity-90 { opacity: 0.9 !important; }
.opacity-100 { opacity: 1 !important; }
.hover-opacity-100:hover { opacity: 1 !important; }

/* default border */
.default-border { border: 1px solid #ddd !important; }
.default-border-top { border-top: 1px solid #ddd !important; }
.default-border-bottom { border-bottom: 1px solid #ddd !important; }
.default-border-color { border-color: #ddd !important; }
.default-border-dark-color { border-color: #bbb !important; }

/* border-width utils */
.border-0 { border-width: 0px !important; }
.border-1 { border-width: 1px !important; }
.border-t-0 { border-top-width: 0px !important; }
.border-t-1 { border-top-width: 1px !important; }
.border-r-0 { border-right-width: 0px !important; }
.border-r-1 { border-right-width: 1px !important; }
.border-b-0 { border-bottom-width: 0px !important; }
.border-b-1 { border-bottom-width: 1px !important; }
.border-l-0 { border-left-width: 0px !important; }
.border-l-1 { border-left-width: 1px !important; }

/* border-color utils */
.border-grey { border-color: #ddd !important; }
.border-light-grey { border-color: #eee !important; }
.border-dark-grey { border-color: #ccc !important; } /* form-control border color */

/* border-radius utils */
.radius-0 { border-radius: 0px !important; }
.radius-4 { border-radius: 4px !important; }
.radius-6 { border-radius: 6px !important; }
.radius-8 { border-radius: 8px !important; }
.radius-10 { border-radius: 10px !important; }
.radius-15 { border-radius: 15px !important; }
.radius-20 { border-radius: 20px !important; }
.radius-circle { border-radius: 50% !important; }
