.full-width {
    width: 100%;
}

.full-height {
    height: 100%;
}

.flex-x {
    display: flex;
    flex-direction: row;
}

    .flex-x.v-align {
        align-items: center;
    }

.flex-y {
    display: flex;
    flex-direction: column;
}

.flex-center {
    justify-content: center;
    align-items: center;
}

.flex-end {
    justify-content: flex-end;
}

.flex-space-between {
    justify-content: space-between;
}

.flex-grow {
    flex: 1;
}

.flex-none {
    flex: 0;
}

.flex-fixed {
    flex: 0 0 auto;
}

.gap2 {
    gap: 2px;
}

.gap4 {
    gap: 4px;
}

.gap8 {
    gap: 8px;
}

.gap16 {
    gap: 16px;
}

.gap32 {
    gap: 32px;
}

.no-break {
    white-space: nowrap;
}

.p0 {
    padding: 0;
}

.p4 {
    padding: 4px;
}

.p8 {
    padding: 8px;
}

.p16 {
    padding: 16px;
}

.px0 {
    padding-left: 0;
    padding-right: 0;
}

.px4 {
    padding-left: 4px;
    padding-right: 4px;
}

.px8 {
    padding-left: 8px;
    padding-right: 8px;
}

.px16 {
    padding-left: 16px;
    padding-right: 16px;
}

.py0 {
    padding-top: 0;
    padding-bottom: 0;
}

.py4 {
    padding-top: 4px;
    padding-bottom: 4px;
}

.py8 {
    padding-top: 8px;
    padding-bottom: 8px;
}

.py16 {
    padding-top: 16px;
    padding-bottom: 16px;
}

.m0 {
    margin: 0;
}

.m4 {
    margin: 4px;
}

.m8 {
    margin: 8px;
}

.m16 {
    margin: 16px;
}

.mx0 {
    margin-left: 0;
    margin-right: 0;
}

.mx4 {
    margin-left: 4px;
    margin-right: 4px;
}

.mx8 {
    margin-left: 8px;
    margin-right: 8px;
}

.mx16 {
    margin-left: 16px;
    margin-right: 16px;
}

.my0 {
    margin-top: 0;
    margin-bottom: 0;
}

.my4 {
    margin-top: 4px;
    margin-bottom: 4px;
}

.my8 {
    margin-top: 8px;
    margin-bottom: 8px;
}

.my16 {
    margin-top: 16px;
    margin-bottom: 16px;
}

.pl0 {
    padding-left: 0;
}

.pl4 {
    padding-left: 4px;
}

.pl8 {
    padding-left: 8px;
}

.pl16 {
    padding-left: 16px;
}

.pr0 {
    padding-right: 0;
}

.pr4 {
    padding-right: 4px;
}

.pr8 {
    padding-right: 8px;
}

.pr16 {
    padding-right: 16px;
}

.pt0 {
    padding-top: 0;
}

.pt4 {
    padding-top: 4px;
}

.pt8 {
    padding-top: 8px;
}

.pt16 {
    padding-top: 16px;
}

.pb0 {
    padding-bottom: 0;
}

.pb4 {
    padding-bottom: 4px;
}

.pb8 {
    padding-bottom: 8px;
}

.pb16 {
    padding-bottom: 16px;
}

.ml0 {
    margin-left: 0;
}

.ml4 {
    margin-left: 4px;
}

.ml8 {
    margin-left: 8px;
}

.ml16 {
    margin-left: 16px;
}

.mr0 {
    margin-right: 0;
}

.mr4 {
    margin-right: 4px;
}

.mr8 {
    margin-right: 8px;
}

.mr16 {
    margin-right: 16px;
}

.mt0 {
    margin-top: 0;
}

.mt4 {
    margin-top: 4px;
}

.mt8 {
    margin-top: 8px;
}

.mt16 {
    margin-top: 16px;
}

.mb0 {
    margin-bottom: 0;
}

.mb4 {
    margin-bottom: 4px;
}

.mb8 {
    margin-bottom: 8px;
}

.mb16 {
    margin-bottom: 16px;
}

.text-left {
    text-align: left;
}

.text-center {
    text-align: center;
}

.text-right {
    text-align: right;
}

.text-justify {
    text-align: justify;
}

.overflow-hidden {
    overflow: hidden;
}

.hidden {
    display: none !important;
}