html {
    scrollbar-gutter: stable;
}

body {
    margin: 0;
    min-height: 100dvh;
    overflow-x: hidden;
}

body > .page {
    min-height: 100dvh;
    padding-left: env(safe-area-inset-left, 0);
    padding-right: env(safe-area-inset-right, 0);
    padding-top: env(safe-area-inset-top, 0);
    padding-bottom: env(safe-area-inset-bottom, 0);
}

.page > .navbar,
.page > .navbar .navbar-nav,
.page > .navbar .navbar-nav .nav-link {
    min-height: 2.25rem;
}

.page > .navbar {
    --tblr-navbar-brand-padding-y: .125rem;
}

#twitch {
    color: #8956fb
}

[x-cloak] {
    display: none !important;
}

.fade {
    transition-duration: 0.1s !important;
}

.icon-sm {
    font-size: .875rem;
}

.icon-md {
    font-size: 1.25rem;
}

.icon-lg {
    font-size: 1.50rem;
}

.icon-xl {
    font-size: 2.00rem;
}

.icon-xxl {
    font-size: 3.00rem;
}

.icon-xxxl {
    font-size: 4.00rem;
}

/*same as tablers .btn-action but without interfering with .btn-loading*/
.btn-icon-square {
    width: 2rem;
    height: 2rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.text-transform-none {
    text-transform: none !important;
}

/* Datagrid inline copy: minimal padding, theme primary (not info/blue) */
.btn-copy-datagrid {
    padding: 0.125rem 0.25rem !important;
    margin: 0 0 0 0.125rem;
    line-height: 1;
    color: var(--tblr-primary) !important;
    vertical-align: middle;
}

.btn-copy-datagrid:hover,
.btn-copy-datagrid:focus-visible {
    color: var(--tblr-primary) !important;
    opacity: 0.85;
}
