﻿
.login-body {
    height:auto;
}
a {
    color: var(--wm-primary);
    text-decoration: none;
}
.form-header .big-icon {
    font-size: 4rem;
    text-align:center;
}
.user-info
{
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    font-size: 0.875rem;
    color: white;
    text-decoration: none;
}
.header{
    padding:0;
}
.form-group{
    margin-bottom:1rem;
}


.fa.form-control-feedback {
    display: block;
    line-height: 28px;
    font-size: 20px;
    right: 5px;
}

.form-control.is-invalid {
    background: rgba(211, 47, 47, 0.1);
    color: #1a1a1a;
}
    .form-control.is-invalid:focus {
        border-color: rgb(211, 47, 47);
    }
.form-control.is-valid {
    background: rgba(152, 223, 0, 0.1);
    color: #2E7D32
}
    .form-control.is-valid:focus {
        border-color: #98df00;
    }

.filter-panel .dropdown {
    position: relative;
}
.filter-panel .dropdown-menu {
    --bs-dropdown-zindex: 1000;
    --bs-dropdown-min-width: 10rem;
    --bs-dropdown-padding-x: 0;
    --bs-dropdown-padding-y: 0.5rem;
    --bs-dropdown-spacer: 0.125rem;
    --bs-dropdown-font-size: 1rem;
    --bs-dropdown-color: #212529;
    --bs-dropdown-bg: #fff;
    --bs-dropdown-border-color: rgba(0, 0, 0, 0.175);
    --bs-dropdown-border-radius: 0.375rem;
    --bs-dropdown-border-width: 1px;
    --bs-dropdown-inner-border-radius: calc(0.375rem - 1px);
    --bs-dropdown-divider-bg: rgba(0, 0, 0, 0.175);
    --bs-dropdown-divider-margin-y: 0.5rem;
    --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    --bs-dropdown-link-color: #212529;
    --bs-dropdown-link-hover-color: #212529;
    --bs-dropdown-link-hover-bg: #f8f9fa;
    --bs-dropdown-link-active-color: #fff;
    --bs-dropdown-link-active-bg: #0d6efd;
    --bs-dropdown-link-disabled-color: rgba(33, 37, 41, 0.5);
    --bs-dropdown-item-padding-x: 1rem;
    --bs-dropdown-item-padding-y: 0.25rem;
    --bs-dropdown-header-color: #6c757d;
    --bs-dropdown-header-padding-x: 1rem;
    --bs-dropdown-header-padding-y: 0.5rem;
    position: absolute;
    z-index: 1000;
    display: none;
    min-width: 10rem;
    padding: 0.5rem 0;
    margin: 0;
    font-size: 1rem;
    color: #212529;
    text-align: left;
    list-style: none;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, 0.175);
    border-radius: 0.375rem;
}
    .filter-panel .dropdown-menu.show {
        display: block;
        opacity: 1;
        visibility: visible;
    }
.filter-panel .dropdown-item input[type=checkbox] {
    margin-right: 0.5rem;
}
.filter-panel .dropdown-item {
    padding: 0.5rem 1rem;
}
.daterangepicker.dropdown-menu{
    display:none;
}

.filter-grid.events-filter {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}


.card-location {
    margin-bottom: var(--spacing-lg);
}

.event-location {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.location-name {
    font-weight: 500;
    color: var(--wm-text-primary);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.location-chapel {
    color: var(--wm-text-tertiary);
    font-size: 0.875rem;
    font-style: italic;
}


.status-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}
.status-icon.inactive {
    background: var(--status-inactive);
    color: var(--wm-text-tertiary);
}
.tooltip {
    --bs-tooltip-zindex: 1080;
    --bs-tooltip-max-width: 200px;
    --bs-tooltip-padding-x: 0.5rem;
    --bs-tooltip-padding-y: 0.25rem;
    --bs-tooltip-font-size: 0.875rem;
    --bs-tooltip-color: #fff;
    --bs-tooltip-bg: #4f056d;
    --bs-tooltip-border-radius: 0.375rem;
    --bs-tooltip-opacity: 0.9;
    --bs-tooltip-arrow-width: 0.8rem;
    --bs-tooltip-arrow-height: 0.4rem;
    z-index: 180;
    display: block;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    text-align: start;
    text-decoration: none;
    text-shadow: none;
    text-transform: none;
    letter-spacing: normal;
    word-break: normal;
    white-space: normal;
    word-spacing: normal;
    line-break: auto;
    font-size: 0.875rem;
    word-wrap: break-word;
    opacity: 0;
}
    .tooltip .tooltip-arrow {
        display: block;
        width: 0.8rem;
        height: 0.4rem;
    }
.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow, .bs-tooltip-top .tooltip-arrow {
    bottom: calc(-1 * 0.4rem);
}
.tooltip.show {
    opacity: 0.9;
}
.tooltip .tooltip-arrow::before {
    position: absolute;
    content: "";
    border-color: transparent;
    border-style: solid;
}
.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before, .bs-tooltip-top .tooltip-arrow::before {
    top: -1px;
    border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;
    border-top-color: var(--bs-tooltip-bg);
}

.tooltip-inner {
    max-width: var(--bs-tooltip-max-width);
    padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);
    color: var(--bs-tooltip-color);
    text-align: center;
    background-color: var(--bs-tooltip-bg);
    border-radius: var(--bs-tooltip-border-radius);
}
.table.lesspadding tbody td {
    padding: 0.4rem 0.5rem;
}
.table.lesspadding thead th {
    padding: 1rem 0.5rem;
}

.text-light {
    color: #e1e1e1;
}
.auto-sched {
    height: 1em;
    margin-right: 0.2em;
    margin-top: -0.2em;
}

.card-primary .auto-sched-big {
    height: 5em;
    margin-right: 1em;
    min-width: 6em;
}

.btn-light {
    background: linear-gradient(135deg, #cfcfcf 0%, #e1e1e1 100%);
    color: #3c3c3c;
    box-shadow: var(--shadow-md);
}

    .btn-light:hover {
        transform: translateY(-2px);
        box-shadow: var(--shadow-lg);
    }

.table td {
    border-color: var(--wm-border);
}
.table th {
    border-color: var(--wm-accent-mid);
}

.border-bottom-row > tbody > tr {
    border-bottom: 5px solid #ede5fa;
}

.btn .fas, .btn .fal, .btn .fab {
    line-height: 1.6;
}

@media (min-width: 992px) {
    .border-bottom-row-lg-none > tbody > tr {
        border-bottom: 1px solid var(--wm-border);
    }
}

@media(max-width: 575px) {
    .btn {
        white-space: normal;
    }
    .table thead th {
        white-space: normal;
    }
}


    .table.nohover tr:hover {
        background-color: initial;
    }
.table.nohover tr.special-row {
    background-color: #e9d7e2;
}
.table tr.vt-row, .table tr.vt-row:hover {
    background-color: #e9d7e2;
}
.table tr.webcast, .table tr.webcast:hover {
    background-color: rgba(152, 223, 0, 0.1);
}
.table tr.recording, .table tr.recording:hover {
    background-color: #d9edf7;
}
.table.schedule-table td, .table.schedule-table th {
    border: 1px solid #dfd1f7;
}
.table tr.vt-row td {
    border: 1px solid #b277d9;
}

  

    .sidebar-card {
        background: var(--wm-surface);
        border-radius: var(--radius-lg);
        padding: var(--spacing-lg);
        box-shadow: var(--shadow-md);
        border: 1px solid var(--wm-border);
    }

.track-counter {
    text-align: center;
    padding: var(--spacing-xl) var(--spacing-lg);
}

.track-count {
    font-size: 3rem;
    font-weight: 700;
    color: var(--wm-primary);
    line-height: 1;
    margin-bottom: var(--spacing-xs);
}
.track-label {
    color: var(--wm-text-secondary);
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.scheduler-sidebar {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    position: sticky;
}
.sidebar-actions {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.sidebar-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    background: var(--wm-primary);
    color: white;
    border: none;
    border-radius: var(--radius-md);
    font-weight: 600;
    font-size: 0.9375rem;
    cursor: pointer;
    transition: all 0.2s ease;
    text-decoration: none;
}

    .sidebar-btn:hover {
        background: var(--wm-primary-light);
        transform: translateY(-2px);
        box-shadow: var(--shadow-md);
    }

    .sidebar-btn.secondary {
        background: var(--wm-accent-light);
        color: var(--wm-primary);
    }

        .sidebar-btn.secondary:hover {
            background: var(--wm-accent-mid);
            color: white;
        }

    .sidebar-btn.action {
        background: var(--action-secondary);
    }


        .sidebar-btn.action:hover {
            background: #1565C0;
        }
hr {
    margin-top: 1rem;
    margin-bottom: 1rem;
}
.card-header-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--wm-primary);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    /*margin-bottom: var(--spacing-xs);*/
}
.modal-header {
    border-bottom: var(--wm-primary) solid 1px;
}
.info-btn {
    -webkit-text-decoration: none;
    text-decoration: none;
}


.collapse:not(.show) {
    display: none
}

.collapsing {
    position: relative;
    height: 0;
    overflow: hidden;
    transition: height .35s ease
}



/* Service Options */
.service-options {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--spacing-md);
    margin-top: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
}

.service-option {
    background: linear-gradient(135deg, var(--wm-accent-pale) 0%, white 100%);
    border: 2px solid var(--wm-border);
    border-radius: var(--radius-md);
    padding: var(--spacing-lg);
    text-align: center;
    transition: all 0.2s ease;
    cursor: pointer;
    -webkit-text-decoration: none;
    text-decoration: none;
    color:inherit;
}

    .service-option.disabled {
        background: linear-gradient(135deg, var(--status-inactive) 0%, #e4e4e4 100%);
    }

    .service-option.active {
        background: linear-gradient(135deg, #e6f6c6 0%, white 100%);
        border-color: var(--status-active);
    }

    .service-option:not(.disabled):hover {
        transform: translateY(-4px);
        box-shadow: var(--shadow-md);
        border-color: var(--wm-accent-mid);
    } 

    .service-option-icon {
        font-size: 2rem;
        margin-bottom: var(--spacing-sm);
        color: var(--wm-primary);
    }

.service-option-title {
    font-weight: 600;
    margin-bottom: var(--spacing-xs);
}

.service-option-text {
    font-size: 0.875rem;
    color: var(--wm-text-secondary);
}
.card-table, .card-table .table {
    border-top: none;
    -webkit-border-top-left-radius: 0;
    border-top-left-radius: 0;
    -webkit-border-top-right-radius: 0;
    border-top-right-radius: 0;
}
.rbl td {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    padding-left: 0;
    margin-bottom: var(--spacing-3);
}
.rbl input {
    width: 1.25rem;
    height: 1.25rem;
    margin: 0;
    appearance: none;
    background-color: var(--wm-surface);
    border: 2px solid var(--wm-border);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all 0.2s ease;
    flex-shrink: 0;
    position: relative;
}
    .rbl input:focus {
        outline: none;
        border-color: var(--wm-primary);
        box-shadow: 0 0 0 3px rgba(79, 5, 109, 0.1);
    }

.rbl label {
    font-size: 0.9375rem;
    color: var(--wm-text-primary);
    cursor: pointer;
    user-select: none;
    margin: 0;
}
.rbl input:checked::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 0.375rem;
    height: 0.625rem;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: translate(-50%, -60%) rotate(45deg);
}

@media (min-width: 768px) {
    .form-filter {
        display: inline-flex;
        flex-wrap: wrap;
        align-items: center;
        width: 100%;
    }
        .form-filter .form-group {
            flex: 50%;
            max-width: 50%;
            padding: 0 .5rem 0 0;
            margin-bottom:0;
        }

            .form-filter .form-group:last-child {
                padding: 0;
            }

            .form-filter .form-group.form-group-wide {
                flex: 100%;
            }

        .form-filter .btn {
            margin: 0 .5rem 0;
            display: inline-block;
            margin-top: 1.9rem;
        }

        .form-filter .multiselect.btn {
            margin-left: 0;
            margin-bottom: 0;
        }
}

@media(min-width:992pxpx) {

    .form-filter .form-group {
        flex: 25%;
        max-width: 25%;
    }

        .form-filter .form-group.form-group-wide {
            flex: 50%;
            max-width: 50%;
        }
}

@media(min-width:1200px) {
    .form-filter .form-group {
        flex: 20%;
        max-width: 20%;
    }

        .form-filter .form-group.form-group-wide {
            flex: 40%;
            max-width: 40%;
        }

    .TrackSearchBox .form-filter .form-group.form-group-wide {
        flex: 60%;
        max-width: 60%;
    }

    .form-filter .form-group.form-group-date {
        flex: 33%;
        max-width: 33%;
    }
}
.flex-column hr {
    width: 100%;
}
.docs-panel ul {
    padding-inline-start: 40px;
    margin-bottom:1rem;
}



/*#region Hymn Words*/
.hymn-words {
    text-align: center;
}

    .hymn-words a {
        display: block;
        text-transform: capitalize;
      
    }

    .hymn-words h2 {
        margin-top: 40px;
    }

ul.alpha {
    padding: 0;
    margin: auto;
}

    ul.alpha li {
        display: inline-block;
        font-size: 18px;
    }

/*#endregion*/

/*#region Resources*/
.pdfFrame {
    width: 100%;
    display: block;
    overflow: hidden;
    border: 1px solid #e3e3e3;
    position: relative;
}

    .pdfFrame:before {
        content: '';
        content: '';
        display: block;
        position: absolute;
        height: 100%;
        width: 100%;
        background-color: rgba(255,255,255, 0);
    }

    .pdfFrame embed {
        height: 100%;
        width: 100%;
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }

@media (min-width:992px) {
    .pdfFrame {
        min-height: 60vh;
    }
}


#HymnModal {
    padding: 1rem;
}


    #HymnModal .modal-body,
    #HymnModal .modal-body > div {
        height: 100%;
        overflow-y: auto;
    }



    #HymnModal .modal-dialog {
        width: 100%;
        max-width: none;
        height: 100%;
        margin: 0;
    }

    #HymnModal .modal-content {
        height: 100%;
        border: 0;
        border-radius: 0;
    }


/*#endregion*/


/* ---------------------------------------------------------------
   Drag and drop schedule items
   --------------------------------------------------------------- */

/* Drag handle appearance */
.schedule-area .drag-handle {
    display: inline-block;
    cursor: grab;
    padding: 0 8px 0 2px;
    color: #aaa;
    vertical-align: middle;
    user-select: none;
    -webkit-user-select: none;
}

    .schedule-area .drag-handle:active {
        cursor: grabbing;
    }

    .schedule-area .drag-handle:hover {
        color: #555;
    }

/* Card being dragged — ghost stays visible but dims the original */
.schedule-area tr.rep-dragging {
    opacity: 0.4;
    box-shadow: none;
}

/* Drop-position indicator lines */
.schedule-area tr.rep-drop-before {
    border-top: 3px solid #337ab7;
    margin-top: -1px; /* compensate so layout doesn't jump */
}

.schedule-area tr.rep-drop-after, .table tbody tr.rep-drop-after:last-child {
    border-bottom: 3px solid #337ab7;
    margin-bottom: -1px;
}

/* Smooth transition so the indicator appears cleanly */
.schedule-area tr {
    transition: border-color 0.1s ease, opacity 0.15s ease;
}
.track-number-container {
    justify-content: center;
}