/* App-level density layer loaded after Bootstrap. */
:root {
    --app-font-size: 0.75rem;
    --app-line-height: 1.4;
    --app-control-font-size: 0.85rem;
    --app-small-font-size: 0.775rem;
    --app-heading-1-size: 1.5rem;
    --app-heading-2-size: 1.25rem;
    --app-heading-3-size: 1.1rem;
    --app-heading-4-size: 1rem;
    --app-heading-5-size: 0.9rem;
    --app-heading-6-size: 0.8rem;
    --app-control-padding-y: 0.35rem;
    --app-control-padding-x: 0.65rem;
    --app-table-cell-padding-y: 0.28rem;
    --app-table-cell-padding-x: 0.4rem;
    --app-card-padding: 1rem;
    --app-modal-section-padding: 0.85rem;
    --app-nav-link-padding-y: 0.4rem;
    --app-nav-link-padding-x: 0.65rem;
}

body {
    font-size: var(--app-font-size);
    line-height: var(--app-line-height);
}

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
    line-height: 1.25;
}

h1, .h1 {
    font-size: var(--app-heading-1-size);
}

h2, .h2 {
    font-size: var(--app-heading-2-size);
}

h3, .h3 {
    font-size: var(--app-heading-3-size);
}

h4, .h4 {
    font-size: var(--app-heading-4-size);
}

h5, .h5 {
    font-size: var(--app-heading-5-size);
}

h6, .h6 {
    font-size: var(--app-heading-6-size);
}

.navbar {
    --bs-navbar-padding-y: 0.35rem;
}

.navbar-brand {
    font-size: 1rem;
}

.nav-link,
.dropdown-item {
    padding: var(--app-nav-link-padding-y) var(--app-nav-link-padding-x);
}

.btn {
    --bs-btn-padding-y: 0.3rem;
    --bs-btn-padding-x: 0.7rem;
    --bs-btn-font-size: var(--app-control-font-size);
}

.btn-sm {
    --bs-btn-padding-y: 0.18rem;
    --bs-btn-padding-x: 0.45rem;
    --bs-btn-font-size: 0.75rem;
}

.form-control,
.form-select,
.input-group-text {
    font-size: var(--app-control-font-size);
}

.form-control,
.form-select {
    padding: var(--app-control-padding-y) var(--app-control-padding-x);
}

.input-group-text {
    padding: var(--app-control-padding-y) 0.6rem;
}

.form-label,
.form-text,
.col-form-label {
    margin-bottom: 0.3rem;
}

.form-label,
.col-form-label {
    font-size: var(--app-small-font-size);
}

.form-text,
small,
.small {
    font-size: var(--app-small-font-size);
}

.table > :not(caption) > * > * {
    padding: var(--app-table-cell-padding-y) var(--app-table-cell-padding-x);
}

.table {
    font-size: 0.8rem;
}

.table .btn-sm {
    --bs-btn-padding-y: 0.15rem;
    --bs-btn-padding-x: 0.38rem;
    --bs-btn-font-size: 0.72rem;
    line-height: 1.2;
}

.card-body {
    padding: var(--app-card-padding);
}

.modal-header,
.modal-body,
.modal-footer {
    padding: var(--app-modal-section-padding) 1rem;
}

.alert {
    padding: 0.75rem 0.9rem;
}

.pagination {
    --bs-pagination-padding-y: 0.3rem;
    --bs-pagination-padding-x: 0.65rem;
    --bs-pagination-font-size: 0.9rem;
}

.badge {
    font-size: 0.72rem;
}

pre {
    font-size: 0.8rem;
}

code {
    font-size: 0.8rem;
}

.chargebee-period-select-year {
    min-width: 5.75rem;
}

.chargebee-period-select-month {
    min-width: 4.5rem;
}

.chargebee-error-icon {
    font-size: 1rem;
}
