/**
 * Portal-weite Ergänzungen zu Bootstrap (kein Framework-Ersatz).
 */

:root {
    --portal-form-border: #94a3b8;
    --portal-form-border-hover: #64748b;
    --portal-form-bg: #fff;
    --portal-form-muted-bg: #f8fafc;
    --portal-form-focus-border: var(--bs-primary);
    --portal-form-focus-ring: rgba(var(--bs-primary-rgb), 0.25);
}

/* Formulare: deutlichere Ränder auf hellem Hintergrund */
.form-control,
.form-select {
    border-color: var(--portal-form-border);
    background-color: var(--portal-form-bg);
}

.form-control:hover:not(:disabled):not([readonly]),
.form-select:hover:not(:disabled) {
    border-color: var(--portal-form-border-hover);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--portal-form-focus-border);
    box-shadow: 0 0 0 0.2rem var(--portal-form-focus-ring);
}

.form-control.bg-light,
.form-select.bg-light {
    background-color: var(--portal-form-bg) !important;
    border-color: var(--portal-form-border) !important;
}

.input-group-text {
    border-color: var(--portal-form-border);
    background-color: var(--portal-form-muted-bg);
    color: #475569;
}

.input-group > .form-control,
.input-group > .form-select,
.input-group > .input-group-text {
    border-color: var(--portal-form-border);
}

.input-group:focus-within > .form-control,
.input-group:focus-within > .form-select,
.input-group:focus-within > .input-group-text {
    border-color: var(--portal-form-focus-border);
}

.input-group:focus-within {
    box-shadow: 0 0 0 0.2rem var(--portal-form-focus-ring);
    border-radius: var(--bs-border-radius);
}

.input-group .form-control.border-start-0,
.input-group .form-control.border-end-0 {
    border-color: var(--portal-form-border) !important;
}

.input-group-text.bg-light {
    background-color: var(--portal-form-muted-bg) !important;
    border-color: var(--portal-form-border) !important;
}

.form-check-input {
    width: 1.1em;
    height: 1.1em;
    margin-top: 0.15em;
    border: 1.5px solid var(--portal-form-border-hover);
    background-color: var(--portal-form-bg);
}

.form-check-input:hover:not(:disabled) {
    border-color: var(--portal-form-border-hover);
}

.form-check-input:focus {
    border-color: var(--portal-form-focus-border);
    box-shadow: 0 0 0 0.2rem var(--portal-form-focus-ring);
}

.form-check-input:checked {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.form-check-input[type="checkbox"]:indeterminate {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.portal-app-header {
    background-color: var(--bs-primary);
    color: #fff;
}

.portal-module-navbar.navbar-dark .navbar-brand,
.portal-module-navbar.navbar-dark .navbar-brand:hover,
.portal-module-navbar.navbar-dark .navbar-brand:focus {
    color: #fff;
}

.portal-module-navbar.navbar-dark .portal-navbar-toolbar .form-control,
.portal-module-navbar.navbar-dark .portal-navbar-toolbar .input-group-text {
    border-color: var(--portal-form-border);
}

.portal-module-navbar .portal-navbar-toolbar .input-group-text {
    background-color: #fff;
}

.portal-module-navbar.navbar-dark .portal-navbar-toolbar .form-control {
    background-color: #fff;
}

.min-vh-25 {
    min-height: 25vh;
}

.max-vh-50 {
    max-height: 50vh;
}

.sticky-below-nav {
    position: sticky;
    top: 56px;
    z-index: 1020;
}

/* Backup-Status: Zeilenumbrüche aus cron.php (PHP_EOL) sichtbar halten */
.log-output {
    white-space: pre-wrap;
    word-break: break-word;
}
