/******************************************************************************
 * Cascading-Style-Sheets file for Admidio - Querbeat White & Red Theme
 *****************************************************************************/

:root {
    --admidio-header-font-color: #e30513;
    --admidio-header-link-color: #e30513;
    --admidio-header-link-color-hover: #b8040f;
    --admidio-menu-bg-color-hover: #fce8e8;
    --admidio-menu-font-color-hover: #e30513;
    --admidio-clamp-text-lines: 0;
    --bs-primary: #e30513;
    --bs-primary-rgb: 227, 5, 19;
    --bs-secondary: #263340;
    --bs-secondary-rgb: 38, 51, 64;
    --bs-tertiary: #f8f9fa;
    --bs-tertiary-rgb: 248, 249, 250;
    --bs-success: #04e01a;
    --bs-body-color: #263340;
    --bs-body-bg: #ffffff;
    --bs-link-color: #e30513;
    --bs-link-color-rgb: 227, 5, 19;
    --bs-link-hover-color: #b8040f;
    --bs-link-hover-color-rgb: 184, 4, 15;
    --bs-focus-ring-color: #fcdada;
}

/* Base High-Contrast Fixes */
body {
    color: #263340 !important;
    background-color: #ffffff !important;
}

/* Top Main Header Navbar */
#adm_main_navbar {
    color: #e30513 !important;
    background-color: #ffffff !important;
    border-bottom: 3px solid #e30513 !important;
    min-height: 4.5rem;
    position: sticky;
    top: 0;
    z-index: 1030;
    padding: 0.5rem 1rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

#adm_headline_organization,
#adm_headline_membership {
    color: #e30513 !important;
    font-weight: bold;
    font-size: 1.2rem;
}

#adm_main_navbar .navbar-brand,
#adm_main_navbar .navbar-brand span,
#adm_main_navbar .nav-link,
#adm_main_navbar .dropdown-toggle,
#adm_main_navbar a,
#adm_main_navbar i,
#adm_main_navbar .bi {
    color: #e30513 !important;
}

#adm_navbar_nav a:hover, 
#adm_main_navbar .dropdown-toggle:hover {
    color: #b8040f !important;
    background-color: #fce8e8 !important;
    border-radius: 0.375rem;
}

/* Top Mobile Toggler / Hamburger Menu Button */
#adm_main_navbar .navbar-toggler {
    border: 2px solid #e30513 !important;
    color: #e30513 !important;
    background-color: #ffffff !important;
}

#adm_main_navbar .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28227, 5, 19, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

/* Sidebar & Main Module Menu */
#adm_sidebar,
.admidio-sidebar {
    background-color: #ffffff !important;
    border-right: 1px solid #e9ecef;
    padding-top: 1rem;
}

/* Mobile Menu Headline Bar */
.admidio-headline-mobile-menu {
    background-color: #f8f9fa !important;
    color: #263340 !important;
    font-weight: bold;
    font-size: 1.1rem;
    border-bottom: 2px solid #e30513 !important;
    border-radius: 0.375rem;
    margin-bottom: 0.5rem;
}

.admidio-headline-mobile-menu button,
.admidio-headline-mobile-menu .btn-link,
.admidio-headline-mobile-menu i,
.admidio-headline-mobile-menu .bi {
    color: #e30513 !important;
    font-size: 1.6rem !important;
}

/* Sidebar Section Headers (e.g. Modules, Administration) */
.admidio-menu-header {
    color: #e30513 !important;
    font-weight: bold;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 0.75rem 0.5rem 0.25rem 0.5rem;
    border-bottom: 1px solid #fcdada;
    margin-top: 0.5rem;
}

/* Sidebar Nav Links */
#adm_sidebar .nav-link,
.admidio-menu-node .nav-link,
#adm_main_menu .nav-link {
    color: #263340 !important;
    font-weight: 500;
    font-size: 1.05rem;
    padding: 0.6rem 0.75rem;
    border-radius: 0.375rem;
    margin-bottom: 0.2rem;
    display: flex;
    align-items: center;
}

#adm_sidebar .nav-link i,
#adm_sidebar .nav-link .bi,
.admidio-menu-node .nav-link i,
.admidio-menu-node .nav-link .bi,
#adm_main_menu .nav-link i,
#adm_main_menu .nav-link .bi {
    color: #e30513 !important;
    margin-right: 0.75rem;
    font-size: 1.2rem;
}

#adm_sidebar .nav-link:hover,
#adm_sidebar .nav-link:focus,
.admidio-menu-node .nav-link:hover,
#adm_main_menu .nav-link:hover {
    color: #e30513 !important;
    background-color: #fce8e8 !important;
}

#adm_sidebar .nav-link.active,
.admidio-menu-node .nav-link.active,
#adm_main_menu .nav-link.active {
    color: #ffffff !important;
    background-color: #e30513 !important;
}

#adm_sidebar .nav-link.active i,
#adm_sidebar .nav-link.active .bi,
.admidio-menu-node .nav-link.active i,
.admidio-menu-node .nav-link.active .bi,
#adm_main_menu .nav-link.active i,
#adm_main_menu .nav-link.active .bi {
    color: #ffffff !important;
}

/* Ensure Sidebar Menu is Visible on Desktop */
@media (min-width: 768px) {
    #adm_main_menu.collapse {
        display: block !important;
    }
}

/* Dropdown Menus */
.dropdown-menu {
    background-color: #ffffff !important;
    border: 1px solid rgba(0,0,0,0.15) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.dropdown-item {
    color: #263340 !important;
    font-weight: 500;
}

.dropdown-item:hover, 
.dropdown-item:focus,
.dropdown-item.active {
    background-color: #fce8e8 !important;
    color: #e30513 !important;
}

.dropdown-item i, 
.dropdown-item .bi {
    color: inherit !important;
}

/***********************************/
/* Page function menu */
/***********************************/

.admidio-menu-function-node .nav-link {
    margin-right: 1.5rem;
    margin-top: 1rem;
}

@media (max-width: 767px) {
    .admidio-menu-function-node .nav-link {
        width: 150px;
        margin-right: 1rem;
    }
}

/* Default distance between elements */
.admidio-blog, .admidio-field-group, .pagination,
.admidio-info-created-edited, .admidio-img-presenter,
.navbar-filter, .table-responsive, .admidio-menu-function-node,
.dt-container, .admidio-margin-bottom, .admidio-content-header,
.admidio-content-subheader, .tab-content {
    margin-bottom: 2rem;
}

.admidio-tabbed-field-group, .admidio-accordion-field-group {
    margin-bottom: 1rem;
}

/* Add distance to all icons within icon text combinations */
.admidio-icon-chain, .nav-link .bi, .btn .bi, .alert .bi,
.admidio-profile-user-right .bi, .checkbox .bi, input[type="radio"],
.accordion .bi, .form-control-static > .bi {
    margin-right: 0.5rem;
}

.admidio-icon {
    padding: 3px;
}

.icon-link .bi {
    height: initial;
}

.admidio-icon-link {
    padding: 3px;
    cursor: pointer;
}

.admidio-icon-link:hover {
    padding: 3px;
    border-radius: 50%;
    background-color: var(--bs-tertiary);
    filter: brightness(92%);
}

.btn, .btn:hover {
    overflow-wrap: normal;
    word-wrap: normal;
    word-break: normal;
    hyphens: none;
}

/* Ensure adjacent buttons have spacing */
.btn + .btn {
    margin-left: 0.5rem;
}

.btn-group .btn + .btn {
    margin-left: -1px;
}

/* Primary Buttons */
.btn-primary {
    background-color: #e30513 !important;
    border-color: #e30513 !important;
    color: #ffffff !important;
}

.btn-primary:hover, 
.btn-primary:focus, 
.btn-primary:active {
    background-color: #b8040f !important;
    border-color: #b8040f !important;
    color: #ffffff !important;
}

/* Outline Buttons */
.btn-outline-primary {
    color: #e30513 !important;
    border-color: #e30513 !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background-color: #e30513 !important;
    color: #ffffff !important;
}

/* Badges & Pills */
.badge.bg-primary, 
.badge-primary,
.bg-primary {
    background-color: #e30513 !important;
    color: #ffffff !important;
}

/* Active Nav Tabs & Pills */
.nav-pills .nav-link.active,
.nav-tabs .nav-link.active {
    background-color: #e30513 !important;
    color: #ffffff !important;
    border-color: #e30513 !important;
}

.nav-tabs .nav-link {
    color: #263340 !important;
    font-weight: bold;
}

/* Accordion High Contrast */
.accordion-button {
    color: #263340 !important;
    background-color: #f8f9fa !important;
}

.accordion-button:not(.collapsed) {
    color: #ffffff !important;
    background-color: #e30513 !important;
}

.accordion-button:not(.collapsed)::after {
    filter: brightness(0) invert(1);
}

/* Pagination */
.page-item.active .page-link {
    background-color: #e30513 !important;
    border-color: #e30513 !important;
    color: #ffffff !important;
}

.page-link {
    color: #e30513 !important;
}

.page-link:hover {
    color: #b8040f !important;
}

/* Forms & Input Labels */
label, .form-label, .col-form-label {
    color: #263340 !important;
    font-weight: bold;
}

.form-control, .form-select {
    color: #263340 !important;
    background-color: #ffffff !important;
}

.form-control:focus, .form-select:focus {
    border-color: #e30513 !important;
    box-shadow: 0 0 0 0.25rem rgba(227, 5, 19, 0.25) !important;
}

/* Cards & Tables */
.card {
    background-color: #ffffff !important;
    border: 1px solid #e9ecef !important;
}

.card-header {
    color: #263340 !important;
    font-weight: bold;
}

.table {
    color: #263340 !important;
}

.table th, .table td {
    color: #263340 !important;
}

/* Form Separators & Sub-information */
.form-separator-line + label {
    font-size: 1.25em;
    text-decoration: underline;
}

.admidio-form-separator-label {
    display: flex;
    align-items: baseline;
    gap: 0.3rem;
    padding-right: calc(var(--bs-gutter-x) * 0.25);
}

.admidio-form-separator-label .admidio-open-close-caret {
    flex: 0 0 auto;
    align-self: center;
}

/***********************************/
/* Events Table Responsive Styling */
/***********************************/

.admidio-content-col {
    padding: 0;
    min-width: 0;
}

.admidio-content, .admidio-reduced {
    order: 1;
    min-width: 0;
    padding-left: 1rem;
    padding-right: 1rem;
    max-width: 1000px;
    -webkit-hyphens: auto;
    -moz-hyphens: auto;
    -ms-hyphens: auto;
    hyphens: auto;
    word-break: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.admidio-tabbed-field-group:has( > .list-group), .admidio-accordion-field-group:has( > .list-group),
.admidio-tabbed-field-group .table-responsive, .admidio-accordion-field-group .table-responsive,
.admidio-tabbed-field-group .table-responsive .dt-container, .admidio-accordion-field-group .table-responsive .dt-container,
.table-responsive .dt-container {
    margin-bottom: 0;
}

#adm_events_table td,
#adm_events_table th {
    vertical-align: middle;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    line-height: 1.25;
}

#adm_events_table th:last-child,
#adm_events_table td:last-child,
#adm_events_table th:first-child,
#adm_events_table td:first-child {
    white-space: nowrap !important;
}

#adm_events_table .btn {
    padding: 0.15rem 0.4rem;
    font-size: 0.875rem;
    line-height: 1.25;
}

div.table-responsive > div.dt-container > div.row,
div.dt-container > div.row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

div.table-responsive > div.dt-container > div.row > div[class^=col-]:first-child,
div.dt-container > div.row > div[class^=col-]:first-child {
    padding-left: 0 !important;
}

div.table-responsive > div.dt-container > div.row > div[class^=col-]:last-child,
div.dt-container > div.row > div[class^=col-]:last-child {
    padding-right: 0 !important;
}
