#logged_hours .counter-icon {
    font-size: 1.2em;
    margin-left: -1%;
    margin-top: -1%;
}

#server_table tr > * {
    padding: 0.2rem 0.25rem;
}

#server_table tr > td:nth-child(7) {
    padding-right: 1rem;
}

.offcanvas-size-xl {
    --offcanvas-width: 700px
}

.offcanvas-size-xxl {
    --offcanvas-width: 1200px
}

.offcanvas-size-xxxl {
    --offcanvas-width: 1500px
}

.offcanvas-size-50 {
    --offcanvas-width: 50%
}

.offcanvas-size-60 {
    --offcanvas-width: 60%
}

.offcanvas-size-70 {
    --offcanvas-width: 70%
}

.offcanvas-size-80 {
    --offcanvas-width: 80%
}

.offcanvas-size-90 {
    --offcanvas-width: 90%
}

.fs-7 {
    font-size: 0.75rem !important
}

.fs-8 {
    font-size: 0.65rem !important
}

.fs-9 {
    font-size: 0.55rem !important
}

input.no-spin[type="number"] {
    -moz-appearance: textfield;
}

input.no-spin[type="number"]::-webkit-inner-spin-button,
input.no-spin[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.server_addon_types .subscription-badges {
    position: absolute;
    /*left: 16.66666667%;*/
    z-index: 1;
    padding-left: .3125rem;
    top: -.8125rem;
}

.server_addon_types .subscription-badges [class^="ph-"] {
    vertical-align: -.063rem;
    font-weight: bold;
}

table.dataTable td:last-child {
    white-space: nowrap;
}

.table-xxs {
    --table-cell-padding-y: 0;
    --table-cell-padding-x: 0.15rem;
}

.input-group span.select2 {
    width: auto !important;
}

.input-group:has(.select2) {
    padding-left: 1px;
}

input:disabled {
    cursor: not-allowed;
}

.offcanvas-header .btn-reload {
    padding: calc(1.25rem * .5) calc(1.25rem * .5);
    margin-top: calc(-.5 * 1.25rem);
    margin-right: calc(-.5 * 1.25rem);
    margin-bottom: calc(-.5 * 1.25rem);
}

.btn-reload {
    transition: all var(0.15s) ease-in-out;
}

/*
 |------------------------------------------------------------
 | Kommentare: Inline-Bilder responsiv innerhalb des Contents
 | Ziel: Bilder sollen den Content-Bereich nicht überlaufen und
 |       nur verkleinert werden, wenn sie breiter als der
 |       Container sind (keine künstliche Vergrößerung).
 |------------------------------------------------------------
 */
.comment-content img {
    max-width: 100% !important; /* skaliert nur herunter, wenn nötig */
    height: auto !important;    /* Seitenverhältnis beibehalten */
    display: inline-block;      /* stabil in Flow, ohne Blocksprung */
}

/* Falls der Editor feste Größen-Attribute setzt, verhindert dies Overflow
   in typischen Wrappern wie figure. */
.comment-content figure img {
    max-width: 100% !important;
    height: auto !important;
}

.btn-reload {
    box-sizing: content-box;
    width: 1em;
    height: 1em;
    padding: 0.25em 0.25em;
    color: #000;
    background: transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0iIzAwMDAwMCIgdmlld0JveD0iMCAwIDI1NiAyNTYiPjxwYXRoIGQ9Ik0yMjQsNDhWOTZhOCw4LDAsMCwxLTgsOEgxNjhhOCw4LDAsMCwxLDAtMTZoMjguNjlMMTgyLjA2LDczLjM3YTc5LjU2LDc5LjU2LDAsMCwwLTU2LjEzLTIzLjQzaC0uNDVBNzkuNTIsNzkuNTIsMCwwLDAsNjkuNTksNzIuNzEsOCw4LDAsMCwxLDU4LjQxLDYxLjI3YTk2LDk2LDAsMCwxLDEzNSwuNzlMMjA4LDc2LjY5VjQ4YTgsOCwwLDAsMSwxNiwwWk0xODYuNDEsMTgzLjI5YTgwLDgwLDAsMCwxLTExMi40Ny0uNjZMNTkuMzEsMTY4SDg4YTgsOCwwLDAsMCwwLTE2SDQwYTgsOCwwLDAsMC04LDh2NDhhOCw4LDAsMCwwLDE2LDBWMTc5LjMxbDE0LjYzLDE0LjYzQTk1LjQzLDk1LjQzLDAsMCwwLDEzMCwyMjIuMDZoLjUzYTk1LjM2LDk1LjM2LDAsMCwwLDY3LjA3LTI3LjMzLDgsOCwwLDAsMC0xMS4xOC0xMS40NFoiPjwvcGF0aD48L3N2Zz4=") center/1em auto no-repeat;
    border: 0;
    border-radius: .375rem;
    opacity: 0.65;
}

.btn-reload:hover {
    color: #000;
    text-decoration: none;
    opacity: 1;
}

.copy-to-clipboard {
    position: relative;
    display: inline-block;
    cursor: pointer;
}

.copy-btn {
    padding: 0.25rem 0.5rem;
}

.copy-btn > i {
    font-size: 1rem;
}

.page-title {

}

.page-subtitle {
    font-size: 1rem !important;
    font-weight: 400 !important;
    --text-opacity: 1;
    color: rgba(var(--body-color-rgb), 0.75) !important;
}

.datatable-header, .datatable-footer {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
}

.sidebar-size-xl {
    --sidebar-width: 21.75rem
}

.sidebar-size-xxl {
    --sidebar-width: 23.75rem
}

.sidebar-size-xxxl {
    --sidebar-width: 25.75rem
}

.sidebar-size-50 {
    --sidebar-width: 50%
}

.sidebar-size-60 {
    --sidebar-width: 60%
}

.sidebar-size-70 {
    --sidebar-width: 70%
}

.sidebar-size-80 {
    --sidebar-width: 80%
}

.sidebar-size-90 {
    --sidebar-width: 90%
}

.ep-echarts-tooltip {
    z-index: 2000 !important;
}

.btn-xs {
    --btn-line-height: 0.7;
    --btn-padding-x: 0.6rem;
    --btn-padding-y: 0.4rem;
    font-size: 0.7rem !important;
}

.btn-xs i {
    font-size: 0.84rem !important;
}

#dashboard-content .card .card-header {
    height: 41px;
    padding: 0.6rem 1.25rem;
    position: relative;
    z-index: 2;
    overflow: visible;
}

/* Ensure dropdowns in dashboard overlay DataTables scroll area */
#dashboard-content .dropdown-menu {
    z-index: 2000 !important;
}

#dashboard-content .card-header ul.nav li.nav-item a.nav-link {
    padding: 0.4rem 0.45rem;
    font-size: 0.7rem !important;
}

#dashboard-content .card-header ul.nav li.nav-item a.nav-link i {
    font-size: 0.84rem !important;
}

#dashboard-content .card-header ul.nav li.nav-item a.nav-link .badge {
    padding: 0.08rem;
    font-size: 0.7rem !important;
}

#dashboard-content .card-header .input-group {
    --input-group-addon-padding-y: 0.4rem;
    --input-group-addon-padding-x: 0.45rem;
    --input-group-addon-bg: var(--gray-100);
    --input-group-addon-color: var(--body-color);
    --input-group-addon-font-size: 0.84rem;
    --input-group-addon-font-weight: 400;
    --input-group-addon-line-height: 0.7;
    --input-group-addon-border-width: var(--border-width);
    --input-group-addon-border-color: var(--gray-400);
    --input-group-addon-border-radius: var(--border-radius);
}

#dashboard-content .card-header .input-group > input {
    --input-padding-y: 0.4rem;
    --input-padding-x: 0.45rem;
    --input-font-size: 0.84rem;
    --input-line-height: 0.7;
    --input-border-radius: var(--border-radius);
}

#dashboard-content .card-header .input-group > .input-group-text {
    --input-group-addon-padding-y: 0.2rem;
    --input-group-addon-padding-x: 0.45rem;
    --input-group-addon-font-size: 0.7rem;
    --input-group-addon-line-height: var(--body-line-height-sm);
    --input-group-addon-border-radius: var(--border-radius-sm);
}

#dashboard-content .card-header .input-group > .input-group-text i {
    font-size: 0.84rem !important;
}

#dashboard-content .table, #dashboard-content .table-sm {
    --table-cell-padding-y: 0.3rem;
    --table-cell-padding-x: 0.25rem;
}
/* Fix: Keep form elements (Select2) inside .js-editable-row container */
.js-editable-row .js-editor .d-flex {
    min-width: 0; /* allow flex children to shrink within container */
}

/* Also allow the right-side flex column to shrink within the row */
.js-editable-row > .flex-fill {
    min-width: 0;
}

.js-editable-row .js-editor .form-select,
.js-editable-row .js-editor .select2-container {
    max-width: 100%;
}

/* Force Select2 to respect container width and truncate long text */
.js-editable-row .js-editor .select2-container {
    display: block; /* avoid inline-block overflows in right-aligned cells */
    width: 100% !important; /* take all available width of the right column */
}

/* Help Select2 calculate width correctly when class 'select2' is on the <select> */
.js-editable-row .js-editor select.select2 {
    width: 100% !important;
}

.js-editable-row .js-editor .select2-container .select2-selection--single {
    max-width: 100%;
    width: 100% !important;
}

.js-editable-row .js-editor .select2-selection__rendered {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; /* prevent long names from expanding container */
}
