.row {
    display: flex;
    flex-direction: row;
}

.column {
    display: flex;
    flex-direction: column;
}

.space-between { justify-content: space-between; }

.right { margin-left: auto; }

.left { margin-right: auto; }

.top { align-items: flex-start; }

.center { margin: auto; }

.center-h {
    margin-left: auto;
    margin-right: auto;
}

.center-v {
    margin-top: auto;
    margin-bottom: auto;
}

.v-center {
    display: flex;
    align-items: center;
}

.self-center { align-self: center; }

.h-center {
    display: flex;
    justify-content: center;
}

.flex { display: flex; }
.relative { position: relative; }

.h-sort {
    display: flex;
    flex-direction: row;
}

.h-sort-center { justify-content: center; }
.h-sort-right { justify-content: flex-end; }
.h-sort-left { justify-content: flex-start; }

.v-sort {
    display: flex;
    flex-direction: column;
}

.v-sort-center { align-items: center; }
.v-sort-right { align-items: flex-end; }
.v-sort-left { align-items: flex-start; }

.p-usm { padding: 5px; }
.p-sm { padding: 8px; }
.p-m { padding: 16px; }
.p-lg { padding: 24px; }
.p-h-sm { padding-left: 8px; padding-right: 8px; }
.p-h-m { padding-left: 16px; padding-right: 16px; }
.p-h-lg { padding-left: 24px; padding-right: 24px; }
.p-v-sm { padding-top: 8px; padding-bottom: 8px; }
.p-v-m { padding-top: 16px; padding-bottom: 16px; }
.p-v-lg { padding-top: 24px; padding-bottom: 24px; }

.m-sm { margin: 8px; }
.m-m { margin: 16px; }
.m-lg { margin: 24px; }
.p-v-split { padding-top: 0.1em; }

.round-0 { border-radius: 0px; }

.shadow-sm { box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); }
.shadow-md { box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); }
.shadow-lg { box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3); }
.shadow-xl { box-shadow: 0 12px 24px rgba(0, 0, 0, 0.4); }

.v_divider {
    border-bottom: 1px solid var(--rt-border-subtle);
    margin: 10px 0 10px;
}

.no-pointer-events { pointer-events: none; }

.no-wrap {
    white-space: nowrap;
    overflow: hidden;
}

.flex-wrap {
    display: flex;
    flex-wrap: wrap;
}

.gap { gap: 15px; }
.gap2 { gap: 10px; }
.gap3 { gap: 8px; }
.gap4 { gap: 5px; }

.shrink { flex: 0 0 auto; }

.pointer { cursor: pointer }

.full-width { width: 100%; }

.section {
    border-bottom: 1px solid var(--rt-border-muted);
}

.outline {
    border: 1px solid var(--rt-border-strong)
}

.outline--gray {
    border: 1px solid var(--rt-border-subtle);
}

.split {
    border-left: 1px solid var(--rt-border-subtle);
    padding: 0.1em 8px;
}

.split-bottom {border-bottom: 1px solid var(--rt-border-subtle);}
.split-top {border-top: 1px solid var(--rt-border-subtle);}

.heading {
    display: block;
    margin-bottom: 0.5rem;
}