html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem var(--secondaryColor);
}

html {
  position: relative;
  min-height: 100%;
}

body {
  /* No margin-bottom: sticky footer uses flexbox so footer sits at viewport bottom when content is short */
}

:root {
    --primaryColor: rgba(39, 63, 70, 0.9) !important;
    --secondaryColor: #9ac456;
}

.sheepDogsBlue {
    background-color: var(--primaryColor) !important;
}
.sheepDogsGreen {
    background-color: var(--secondaryColor);
}

.textPrimary{
    color: var(--primaryColor);
}
.textPrimaryHover.textPrimaryHover:hover{
    color: var(--secondaryColor);
}
.textSecondary {
    color: var(--secondaryColor);
}
.textSecondary.textSecondaryHover:hover {
    color: var(--primaryColor);
}

.mainNav {
    background-color: transparent !important;
    border: 0 !important;
    min-height: 0; /* allow flex child to shrink for scroll */
}

/* Main content area and card fill remaining space between header/nav and footer */
.mainNav main {
    min-height: 0;
}
.main-content-card {
    min-height: 0;
}

/* Breadcrumb bar inside main content card */
.page-breadcrumbs {
    background-color: rgba(39, 63, 70, 0.06);
    border-color: rgba(39, 63, 70, 0.12) !important;
}
.page-breadcrumbs .breadcrumb {
    --bs-breadcrumb-divider: "/";
    --bs-breadcrumb-item-padding-x: 0.5rem;
}
.page-breadcrumbs .breadcrumb-item a {
    color: var(--primaryColor);
    text-decoration: none;
}
.page-breadcrumbs .breadcrumb-item a:hover {
    text-decoration: underline;
}
.page-breadcrumbs .breadcrumb-item.active {
    color: rgba(39, 63, 70, 0.75);
}
.page-breadcrumbs .breadcrumb-item {
    word-break: break-word;
    max-width: 100%;
}
.mainNav > .nav {
    background-color: transparent !important;
}
.mainNav > .nav > .nav-item {
    background-color: var(--primaryColor) !important;
    color: white !important;
    text-decoration: none !important;
}
    .mainNav > .nav > .nav-item > .nav-link {
        background-color: var(--primaryColor) !important;
        color: white !important;
        text-decoration: none !important;
        border-radius: 0 !important;
        border: 0 !important;
        padding: 0.5rem 3rem;
    }
.mainNav > .nav > .nav-item > a.active {
    color: black !important;
    background-color: var(--secondaryColor) !important;    
}
    .mainNav > .nav > .nav-item > a:hover {
        background-color: rgba(216, 192, 185, 0.5) !important;
        color: rgba(39, 63, 70, 0.85) !important;
    }
header{
    background-color: var(--primaryColor);
}

/* Mobile header: brand on own row (centered), then h3 centered with burger toggler on the right */
@media (max-width: 575.98px) {
    header .navbar .navbar-brand.navbar-brand-mobile {
        width: 100%;
        flex-basis: 100%;
    }
    header .navbar .navbar-title-toggler-wrapper {
        width: 100%;
        flex-basis: 100%;
    }
}
@media (min-width: 576px) {
    header .navbar .navbar-title-toggler-wrapper {
        display: contents;
    }
    header .navbar .navbar-toggler-spacer {
        flex-grow: 0;
    }
}

/* Active page link in navbar burger menu (mobile) */
.navbar .navbar-nav .nav-link.active {
    color: black !important;
    background-color: var(--secondaryColor) !important;
}

/* Center burger menu content on small screens (below navbar-expand-sm) */
@media (max-width: 575.98px) {
    .navbar .navbar-collapse {
        align-items: center;
        text-align: center;
        justify-content: center;
        flex-direction: column;
    }
    .navbar .navbar-collapse .navbar-nav {
        justify-content: center;
        width: 100%;
    }
    .navbar .navbar-collapse .nav-item {
        text-align: center;
    }
    .navbar .navbar-collapse .nav-link {
        justify-content: center;
        text-align: center;
    }
    /* Login partial: center the ul and form */
    .navbar .navbar-collapse .navbar-nav .nav-item .form-inline {
        display: flex;
        justify-content: center;
        width: 100%;
    }
    .navbar .navbar-collapse .navbar-nav .nav-item .form-inline .btn {
        text-align: center;
    }
}
.identityCard{
    max-width:50rem;
    padding: 2rem; 
    margin-top: 0 !important;
    border: none;
}

/* Identity pages: use sheepdogs green for primary/success buttons */
.identityCard .btn-success,
.identityCard .btn-primary {
    background-color: var(--secondaryColor) !important;
    border-color: var(--secondaryColor) !important;
}
.identityCard .btn-success:hover,
.identityCard .btn-primary:hover {
    background-color: #1e8449 !important;
    border-color: #1e8449 !important;
}
.identityCard .btn-outline-primary {
    color: var(--secondaryColor);
    border-color: var(--secondaryColor);
}
.identityCard .btn-outline-primary:hover {
    background-color: var(--secondaryColor);
    border-color: var(--secondaryColor);
    color: #fff;
}

/* Identity: green focus ring for form elements and buttons (no blue outline) */
.identityCard .btn:focus,
.identityCard .btn:active:focus,
.identityCard .form-control:focus,
.identityCard .form-check-input:focus,
.identityCard .form-select:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem var(--secondaryColor);
    border-color: var(--secondaryColor);
}
.identityCard .form-control:focus,
.identityCard .form-select:focus {
    border-color: var(--secondaryColor);
}

/* Manage account nav: sheepdogs green for active and hover */
.identityCard .nav-pills .nav-link {
    color: var(--primaryColor);
}
.identityCard .nav-pills .nav-link:hover {
    background-color: rgba(39, 174, 96, 0.2);
    color: var(--secondaryColor);
}
.identityCard .nav-pills .nav-link.active {
    background-color: var(--secondaryColor) !important;
    color: #fff !important;
}

/* Home: package boxes – image fills the card top with consistent aspect ratio */
.package-box-image img {
    object-fit: cover;
}

/* Home: package card link hover */
a:has(> .card) .card {
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
a:has(> .card):hover .card {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
    transform: translateY(-2px);
}

#filter #toggleFilter:hover,
#filter #toggleFilter:active,
#filter #toggleFilter:focus {
    background-color: #1e8449 !important;
}

/* My Packages index: tile/card grid (data rendered into divs from DataTables) */
.packages-tile-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    width: 100%;
}
/* 1 tile per row; flex basis fills width minus no gaps */
.package-tile-cell {
    flex: 0 0 100%;
    min-width: 0;
    box-sizing: border-box;
}
/* 2 per row: (100% - 1 gap) / 2 */
@media (min-width: 576px) {
    .package-tile-cell {
        flex: 0 0 calc((100% - 1rem) / 2);
    }
}
/* 3 per row: (100% - 2 gaps) / 3 */
@media (min-width: 768px) {
    .package-tile-cell {
        flex: 0 0 calc((100% - 2rem) / 3);
    }
}
/* 4 per row: (100% - 3 gaps) / 4 */
@media (min-width: 992px) {
    .package-tile-cell {
        flex: 0 0 calc((100% - 3rem) / 4);
    }
}

/* My Packages index: DataTables Scroller + responsive tile grid (4 cols at 992px+, 3 at 768px, 2 at 576px, 1 on mobile) */
.packages-tile-scroller-wrapper .dts tbody th,
.packages-tile-scroller-wrapper .dts tbody td {
    white-space: normal;
    vertical-align: top;
}
.packages-tile-scroller-wrapper .dts tbody {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;
}
@media (min-width: 576px) {
    .packages-tile-scroller-wrapper .dts tbody {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 768px) {
    .packages-tile-scroller-wrapper .dts tbody {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (min-width: 992px) {
    .packages-tile-scroller-wrapper .dts tbody {
        grid-template-columns: repeat(4, 1fr);
    }
}
/* tr as grid row placeholder so Scroller row height (240px) matches one visual row of tiles */
.packages-tile-scroller-wrapper .dts tbody tr {
    display: contents;
}
.packages-tile-scroller-wrapper .dts tbody td {
    min-width: 0;
    min-height: 240px;
    border: none;
    padding: 0;
    vertical-align: top;
    box-sizing: border-box;
}
.packages-tile-scroller-wrapper .dts tbody td .package-tile {
    height: 100%;
    min-height: 200px;
}
.packages-tile-scroller-wrapper .dts div.dataTables_scrollBody {
    background: transparent;
}
.packages-tile-scroller-wrapper .dts div.dataTables_scrollBody table {
    background: transparent;
}
.packages-tile-scroller-wrapper .packages-tile-datatable thead th {
    border: none;
    padding: 0;
    height: 0;
    line-height: 0;
    overflow: hidden;
}
.package-tile {
    position: relative;
    height: 100%;
    cursor: pointer;
    border: 1px solid rgba(0, 0, 0, 0.125);
    border-radius: 0.375rem;
    background: #fff;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
    display: flex; 
    flex-direction: column;
    padding: 1rem;
    justify-content: center;
    text-align: center;
}
.package-tile-live {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    z-index: 1;
    font-size: 0.875rem;
    padding: 0.4em 0.65em;
    letter-spacing: 0.06em;
}
.package-tile-live--left {
    left: 0.5rem;
    right: auto;
}
.package-tile:hover {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    transform: translateY(-2px);
}
.package-tile-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
}
.package-tile-title, .package-tile-location {
    font-weight: 500;
    line-height: 1.3;
}
.package-tile-image {
    display: block;
    max-width: 100%;
    max-height: 5rem;
    width: auto;
    margin: 0 auto 0.5rem;
    object-fit: contain;
}
.package-tile-wrapper{
    height: 100%;
}
.package-tile-sessions-line {
    font-size: 0.875rem;
    line-height: 1.35;
    color: rgba(33, 37, 41, 0.92);
}
.navbar-nav .nav-item {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

@media(max-width: 767.98px) {
    #filter .input-group > .btn {
        width: 100%;
        border-radius: 0.25rem;
        margin-top: 0.5rem;
    }
    #collapseFilter .inset .col{
        min-width: 100%;
    }
}

.table-hover > tbody > tr:hover {
    --bs-table-accent-bg: white;
}

tbody{ padding: 0.25rem;}

.dts_label{
    display: none !important;
}
.package-tile-timestamp {
    display: flex;
    justify-content: center;
    align-items:center;
}

.package-tile--current {
    border-color: #198754 !important;
    box-shadow: 0 0 0 2px rgba(25, 135, 84, 0.35);
    background: #f4faf6;
}

/* My Trials Library asset page: trial/session summary below the video */
.asset-detail-panel {
    border-radius: 0.375rem;
    background: #fff;
}
.asset-detail-panel .card-body {
    padding: 1rem 1.1rem;
}
.asset-detail-session-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem;
}
.asset-detail-session-details {
    display: inline;
}
.asset-detail-session-toggle {
    display: inline;
    cursor: pointer;
    color: var(--secondaryColor);
    font-weight: 600;
}
.asset-detail-session-toggle-icon {
    transition: transform 0.15s ease-in-out;
}
.asset-detail-session-details[open] .asset-detail-session-label-collapsed,
.asset-detail-session-details:not([open]) .asset-detail-session-label-expanded {
    display: none;
}
.asset-detail-session-details[open] .asset-detail-session-toggle-icon {
    transform: rotate(180deg);
}
.asset-detail-session-toggle:hover,
.asset-detail-session-toggle:focus {
    text-decoration: underline;
}
.asset-detail-session-toggle::-webkit-details-marker {
    display: none;
}
.asset-detail-session-details[open] .asset-detail-session-toggle {
    margin-bottom: 0.15rem;
}
.asset-detail-session-runs {
    margin-left: 0;
}
.asset-detail-run-seek-btn.btn {
    padding: 0.05rem 0.25rem;
    line-height: 1;
}
.asset-detail-run-seek-btn i {
    font-size: 0.65rem;
}
@media (min-width: 768px) {
    .asset-detail-panel {
        max-width: 100%;
    }
}

/* My Trials Library asset page: teletext-style strip header + DataTables strip (1 col desktop, horizontal row mobile) */
.asset-strip-teletext {
    background: var(--primaryColor);
    color: var(--secondaryColor);
    border-radius: 2px;
    padding: 0.4rem 0.6rem;
}
.asset-strip-teletext-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.asset-strip-package-image {
    display: block;
    max-height: 2rem;
    width: auto;
    object-fit: contain;
}

.asset-strip-scroller-wrapper .dts tbody th,
.asset-strip-scroller-wrapper .dts tbody td {
    white-space: normal;
    vertical-align: top;
}
.asset-strip-scroller-wrapper .dts tbody {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.5rem;
}
.asset-strip-scroller-wrapper .dts tbody tr {
    display: contents;
}
.asset-strip-scroller-wrapper .dts tbody td {
    min-width: 0;
    border: none;
    padding: 0;
    vertical-align: top;
    box-sizing: border-box;
}
/*
  Desktop stacked list: base uses tbody grid + tr{display:contents}; gap/padding often show no space with
  DataTables scrollBody. Fix by restoring normal table layout only at md+ and using border-spacing (works
  with border-collapse:separate). Mobile uses max-width rules + flex row — unchanged.
*/
@media (min-width: 768px) {
    .asset-strip-scroller-wrapper .dts tbody {
        display: table-row-group;
        grid-template-columns: unset;
        gap: unset;
    }

    .asset-strip-scroller-wrapper .dts tbody tr {
        display: table-row;
    }

    .asset-strip-scroller-wrapper .dts tbody td {
        display: table-cell;
    }

    .asset-strip-scroller-wrapper .dts div.dataTables_scrollBody table {
        border-collapse: separate;
        border-spacing: 0 0.5rem;
        width: 100%;
    }
}
/* Asset strip cards: height from content; inner flex fills cell when stretched (mobile row) */
.asset-strip-scroller-wrapper .dts tbody td .asset-strip-card {
    font-size: 0.875rem;
}
/* No borders on strip rows (Bootstrap .card + .table) */
.asset-strip-scroller-wrapper .asset-strip-datatable.table {
    --bs-table-border-color: transparent;
    --bs-table-bg: transparent;
}
.asset-strip-scroller-wrapper .dataTables_wrapper,
.asset-strip-scroller-wrapper .asset-strip-datatable {
    width: 100% !important;
}
.asset-strip-scroller-wrapper .asset-strip-datatable {
    table-layout: fixed;
}
.asset-strip-scroller-wrapper .asset-strip-datatable tbody td {
    width: 100%;
    white-space: normal;
}
.asset-strip-scroller-wrapper .asset-strip-datatable.table > :not(caption) > * > * {
    border-bottom-width: 0;
}
.asset-strip-scroller-wrapper .asset-strip-card.card {
    width: 100%;
}
.asset-strip-card-inner {
    min-height: 0;
}
.asset-strip-sessions {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.asset-strip-session-line {
    line-height: 1.35;
    word-wrap: break-word;
}
.asset-strip-session-block + .asset-strip-session-block {
    margin-top: 0.35rem;
}
/* Matched-run time: same fa-solid fa-video as My Trials Library tiles, inline on the run line */
.asset-strip-run-time {
    display: inline;
    margin-left: 0.15rem;
}
/* Currently playing asset on the watch-page strip (server + client apply .asset-strip-card--current / data-is-current) */
.asset-strip-card.asset-strip-card--current,
.asset-strip-card:has([data-is-current="true"]) {
    background: rgba(220, 53, 69, 0.14);
    border-color: #dc3545;
    box-shadow: inset 0 0 0 2px #dc3545;
}
.asset-strip-scroller-wrapper .dts div.dataTables_scrollBody {
    background: transparent;
}
.asset-strip-scroller-wrapper .dts div.dataTables_scrollBody table {
    background: transparent;
}
.asset-strip-scroller-wrapper .asset-strip-datatable thead th {
    border: none;
    padding: 0;
    height: 0;
    line-height: 0;
    overflow: hidden;
}
.asset-strip-tile-cell{
    padding: 0.25rem;
}
@media (max-width: 767.98px) {
    /* Single horizontal scroll container; no vertical scroll inside the strip (DataTables Scroller disabled on mobile in Asset.cshtml) */
    .asset-strip-scroller-wrapper.asset-strip-hscroll {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        padding-bottom: 0.35rem;
    }

        .asset-strip-scroller-wrapper.asset-strip-hscroll .dataTables_wrapper,
        .asset-strip-scroller-wrapper.asset-strip-hscroll .dts {
            overflow: visible;
        }

            .asset-strip-scroller-wrapper.asset-strip-hscroll .dts tbody,
            .asset-strip-scroller-wrapper.asset-strip-hscroll table tbody {
                display: flex;
                flex-direction: row;
                flex-wrap: nowrap;
                gap: 0.125rem;
                overflow: visible;
            }

                .asset-strip-scroller-wrapper.asset-strip-hscroll .dts tbody tr,
                .asset-strip-scroller-wrapper.asset-strip-hscroll table tbody tr {
                    display: flex;
                    flex: 0 0 auto;
                    align-items: stretch;
                }

                .asset-strip-scroller-wrapper.asset-strip-hscroll .dts tbody td,
                .asset-strip-scroller-wrapper.asset-strip-hscroll table tbody td {
                    display: flex;
                    flex-direction: column;
                    min-width: 280px;
                    max-width: 300px;
                    min-height: 0;
                    align-self: stretch;
                }

                    .asset-strip-scroller-wrapper.asset-strip-hscroll .dts tbody td .asset-strip-card,
                    .asset-strip-scroller-wrapper.asset-strip-hscroll table tbody td .asset-strip-card {
                        flex: 1 1 auto;
                        width: 100%;
                        min-height: 100%;
                    }
    /* If a scroll body is present, never allow vertical panes on mobile */
    .asset-strip-scroller-wrapper .dts div.dataTables_scrollBody {
        overflow-y: hidden !important;
        overflow-x: visible !important;
        max-height: none !important;
    }
}
.asset-strip-tile-cell {
    padding: 0rem !important;
}

/* Small variant for .form-floating – compact height with even spacing */
.form-floating.form-floating-sm .form-control,
.form-floating.form-floating-sm .form-select {
    height: calc(2.5rem + 2px);
    min-height: calc(2.5rem + 2px);
    padding: 0.4rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.35;
    border-radius: 0.25rem;
}

/* Floated state: consistent top/bottom padding so label and value line up across all fields */
.form-floating.form-floating-sm .form-control:focus,
.form-floating.form-floating-sm .form-control:not(:placeholder-shown),
.form-floating.form-floating-sm .form-control:-webkit-autofill,
.form-floating.form-floating-sm .form-select {
    padding-top: 1rem;
    padding-bottom: 0.4rem;
}

.form-floating.form-floating-sm .form-control:not(:-moz-placeholder-shown) {
    padding-top: 1rem;
    padding-bottom: 0.4rem;
}

/* Label: same padding as input so placeholder and label align */
.form-floating.form-floating-sm > label {
    padding: 0.4rem 0.5rem;
    font-size: 0.8125rem;
    line-height: 1.35;
}

/* Floated label: same transform for all (no translateX so labels align evenly) */
.form-floating.form-floating-sm > .form-control:focus ~ label,
.form-floating.form-floating-sm > .form-control:not(:placeholder-shown) ~ label,
.form-floating.form-floating-sm > .form-select ~ label,
.form-floating.form-floating-sm > .form-control-plaintext ~ label,
.form-floating.form-floating-sm > .form-control:-webkit-autofill ~ label {
    transform: scale(0.85) translateY(-0.4rem);
    opacity: 0.8;
}

.form-floating.form-floating-sm > .form-control:not(:-moz-placeholder-shown) ~ label {
    transform: scale(0.85) translateY(-0.4rem);
    opacity: 0.8;
}

/* Textarea: let height be driven by rows */
.form-floating.form-floating-sm textarea.form-control {
    height: auto;
}

/* form-floating-sm + Select2: style the Select2 container like the small form control */
.form-floating.form-floating-sm.select2Part .select2-container {
    display: block;
    width: 100%;
    overflow: visible;
}

.form-floating.form-floating-sm.select2Part .select2-container .select2-selection--single {
    height: calc(2.5rem + 2px);
    min-height: calc(2.5rem + 2px);
    padding: 0.4rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.35;
    border-radius: 0.25rem;
    border: 1px solid var(--bs-border-color, #ced4da);
}

/* Multi-select: same min-height as .form-floating-sm inputs; grows only when many chips wrap */
.form-floating.form-floating-sm.select2Part .select2-container .select2-selection--multiple {
    height: auto;
    min-height: calc(2.5rem + 2px);
    padding: 0.1rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25;
    border-radius: 0.25rem;
    border: 1px solid var(--bs-border-color, #ced4da);
    overflow: visible;
}

.form-floating.form-floating-sm.select2Part .select2-container .select2-selection--single .select2-selection__rendered {
    padding-left: 0;
    padding-right: 0;
    line-height: 1.35;
    padding-top: 0;
    padding-bottom: 0;
}

.form-floating.form-floating-sm.select2Part .select2-container .select2-selection--multiple .select2-selection__rendered {
    padding-left: 0;
    padding-right: 1.5rem;
    margin: 0;
    line-height: 1.25;
    /* Align with floated-label inputs: ~1rem top band for label, compact chip row */
    padding-top: 0.62rem;
    padding-bottom: 0.12rem;
    height: auto !important;
    min-height: 0;
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.125rem;
    box-sizing: border-box;
    /* Select2 default: overflow:hidden + nowrap + ellipsis — hides chips when dropdown closes */
    overflow: visible !important;
    white-space: normal !important;
    text-overflow: clip !important;
}

.form-floating.form-floating-sm.select2Part .select2-container .select2-selection--multiple .select2-selection__rendered:before {
    top: 50%;
    transform: translateY(-50%);
}

.form-floating.form-floating-sm.select2Part .select2-container .select2-selection--multiple .select2-selection__rendered li {
    padding: 0.05rem;
    line-height: 1.2;
}

.form-floating.form-floating-sm.select2Part .select2-container .select2-selection--multiple .select2-selection__choice {
    float: none;
    margin-top: 0.05rem;
    margin-bottom: 0.05rem;
    margin-right: 0.25rem;
    padding: 0.1rem 0.35rem 0.1rem 0.4rem !important;
    padding-right: 1.25rem !important;
    font-size: 0.8125rem !important;
    line-height: 1.2 !important;
    letter-spacing: 0;
    background-color: rgba(154, 196, 86, 0.35);
    border: 1px solid rgba(154, 196, 86, 0.65);
    color: var(--primaryColor);
}

.form-floating.form-floating-sm.select2Part .select2-container .select2-selection--multiple .select2-selection__choice__remove {
    font-size: 0.85rem;
    line-height: 1;
    top: 50%;
    transform: translateY(-50%);
    padding-top: 0;
}

.form-floating.form-floating-sm.select2Part .select2-container .select2-selection--multiple .select2-search--inline .select2-search__field {
    margin-top: 0;
    padding-top: 0.15rem;
    padding-bottom: 0;
    line-height: 1.25;
    font-size: 0.8125rem;
    min-height: 0;
    height: 1.35rem;
}

.form-floating.form-floating-sm.select2Part .select2-container.select2-container--focus .select2-selection--single,
.form-floating.form-floating-sm.select2Part .select2-container.select2-container--focus .select2-selection--multiple,
.form-floating.form-floating-sm.select2Part .select2-container.select2-container--open .select2-selection--single,
.form-floating.form-floating-sm.select2Part .select2-container.select2-container--open .select2-selection--multiple {
    border-color: var(--secondaryColor);
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(154, 196, 86, 0.35);
}

/* Float label when Select2 has a value or is focused (JS adds .focused on open; :has() covers initial value) */
.form-floating.form-floating-sm.select2Part.focused > label,
.form-floating.form-floating-sm.select2Part:has(select option:checked:not([value=""])) > label {
    transform: scale(0.85) translateY(-0.4rem);
    opacity: 0.8;
}

/* Filter row: equal-width columns so floating forms align and space evenly */
#collapseFilter .filter-floating-row .col {
    min-width: 0;
    flex: 1 1 0;
}
#collapseFilter .filter-floating-row .form-floating {
    width: 100%;
}
#collapseFilter .inset {
    padding: 0.35rem 1rem 0.35rem 1rem;
}

.btn:hover,
.btn:focus,
.btn.show,
.btn:active {
    background-color: var(--primaryColor) !important;
    border-color: var(--primaryColor) !important;
    color: #fff !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary.show,
.btn-primary:active,
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary.show,
.btn-secondary:active,
.btn-success:hover,
.btn-success:focus,
.btn-success.show,
.btn-success:active,
.btn-danger:hover,
.btn-danger:focus,
.btn-danger.show,
.btn-danger:active,
.btn-warning:hover,
.btn-warning:focus,
.btn-warning.show,
.btn-warning:active,
.btn-info:hover,
.btn-info:focus,
.btn-info.show,
.btn-info:active,
.btn-light:hover,
.btn-light:focus,
.btn-light.show,
.btn-light:active,
.btn-dark:hover,
.btn-dark:focus,
.btn-dark.show,
.btn-dark:active,
.btn.sheepDogsGreen:hover,
.btn.sheepDogsGreen:focus,
.btn.sheepDogsGreen.show,
.btn.sheepDogsGreen:active {
    background-color: var(--primaryColor) !important;
    border-color: var(--primaryColor) !important;
    color: #fff !important;
}

.btn-success,.btn-primary {
    background-color: var(--secondaryColor) !important;
    border-color: var(--secondaryColor) !important;
}

/* Outline primary / links: Bootstrap default blue is off-brand outside Identity overrides */
.btn-outline-primary {
    color: var(--primaryColor);
    border-color: var(--secondaryColor);
}
.btn-outline-primary:hover,
.btn-outline-primary:focus-visible,
.btn-outline-primary:active {
    background-color: var(--secondaryColor) !important;
    border-color: var(--secondaryColor) !important;
    color: #fff !important;
}

#payment-message {
    color: rgb(105, 115, 134);
    font-size: 16px;
    line-height: 20px;
    padding-top: 12px;
    text-align: center;
}

#payment-element {
    margin-bottom: 24px;
}

/* Buttons and links */
.stripe-button {
    background: #5469d4;
    font-family: Arial, sans-serif;
    color: #ffffff;
    border-radius: 4px;
    border: 0;
    padding: 12px 16px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    display: block;
    transition: all 0.2s ease;
    box-shadow: 0px 4px 5.5px 0px rgba(0, 0, 0, 0.07);
    width: 100%;
}

    .stripe-button:hover {
        filter: contrast(115%);
    }

    .stripe-button:disabled {
        opacity: 0.5;
        cursor: default;
    }


/*--------select2-css----*/
.select2Part .floating-label {
    opacity: 0;
}

.select2-container--default {
    width: 100% !important;
}

.select2Part.focused .floating-label {
    opacity: 1;
}

.select2multiple .floating-label {
    opacity: 1;
}

.select2Part.focused .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-top: 13px;
}

.select2-container--default .select2-selection--single {
    border: 1px solid #DFE3E7;
    height: 55px;
}

.select2-container--focus.select2-container--default .select2-selection--single {
    border: 1px solid var(--primaryColor);
    background-color: #fff;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 40px;
    transition: 240ms;
    padding-right: 40px;
    font-size: 16px;
    font-weight: 400;
    color: #475F7B;
    padding-top: 7px;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 53px;
    right: 15px;
    transition: 240ms;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: rgba(154, 196, 86, 0.22);
    color: var(--primaryColor);
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
    border: none;
    background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9Ii00NzMgMjc3IDEyIDgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgLTQ3MyAyNzcgMTIgODsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzhBOTNBNjt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTS00NzEuNiwyNzcuM2w0LjYsNC42bDQuNi00LjZsMS40LDEuNGwtNiw2bC02LTZMLTQ3MS42LDI3Ny4zeiIvPg0KPC9zdmc+DQo=') no-repeat 0 0;
    width: 12px;
    height: 8px;
    background-size: 100% 100%;
    transform: translateY(-50%);
    left: 0;
    right: 0;
    margin: auto;
}

.select2-container--default .select2-results__option[aria-selected=true] {
    background-color: var(--secondaryColor);
    color: #fff;
}

.select2-container--default .select2-results__option:last-child {
    border-radius: 0px 0px 4px 4px;
}

.select2-container--default .select2-selection--single {
    border-radius: .267rem;
}

.select2-container .select2-selection--single .select2-selection__rendered {
    padding-left: 19px;
}

.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single {
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
}

.select2-results__option {
    padding: 8px 18px;
    user-select: none;
    -webkit-user-select: none;
    color: #4F4F4F;
    font-size: 15px;
    font-weight: 400;
}

.select2-container--open .select2-dropdown--above {
    box-shadow: 0px 6px 32px rgb(0 0 0 / 10%);
    border-radius: 0px;
    border: none;
    top: 8px;
    border-radius: 6px;
    overflow: hidden;
}

.select2-container--open .select2-dropdown--below {
    box-shadow: 0px 2px 18px rgb(0 0 0 / 16%);
    border-radius: 0px;
    border: none;
    top: -8px;
    border-radius: 6px;
    overflow: hidden;
}

.select2Part.w-100 > .select2-container {
    width: 100% !important;
}

.select2-search--dropdown {
    padding: 12px 15px;
    position: relative;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
    font-size: 14px;
    border: 1px solid #DFE3E7;
    border-radius: 4px;
    color: #757575;
    padding: 10px 15px;
    background-color: #fff;
    position: relative;
    padding-right: 45px;
}

.select2-container--default .select2-search--dropdown:after {
    content: "\f002";
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    position: absolute;
    top: 23px;
    right: 30px;
    font-size: 15px;
    color: rgba(0,0,0,0.54);
}

.select2-container--default .select2-selection--multiple {
    background-color: #fff;
    border: 1px solid #DFE3E7;
    min-height: 50px;
    border-radius: 6px;
    position: relative;
}

.select2-container--default.select2-container--focus .select2-selection--multiple {
    background-color: #fff;
}

.select2-container--default .select2-selection--multiple .select2-selection__rendered {
    color: #757575;
    line-height: 55px;
    padding-right: 40px;
    display: block;
    height: 100%;
    padding-bottom: 7px;
    padding-top: 17px;
    padding-left: 17px;
    transition: 240ms;
}

.select2-container--default .select2-selection--multiple .select2-selection__arrow {
    height: 48px;
    right: 15px;
}

.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field {
    line-height: initial;
    padding: 0;
}

.select2-container--default .select2-selection--multiple .select2-selection__rendered:before {
    border: none;
    content: '';
    background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9Ii00NzMgMjc3IDEyIDgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgLTQ3MyAyNzcgMTIgODsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzhBOTNBNjt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTS00NzEuNiwyNzcuM2w0LjYsNC42bDQuNi00LjZsMS40LDEuNGwtNiw2bC02LTZMLTQ3MS42LDI3Ny4zeiIvPg0KPC9zdmc+DQo=') no-repeat 0 0;
    width: 12px;
    height: 8px;
    background-size: 100% 100%;
    transform: translateY(-50%);
    position: absolute;
    right: 18px;
    top: 26px;
}

.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
    list-style: none;
    line-height: initial;
    padding: 5px;
    font-size: 14px;
    position: relative;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: rgba(154, 196, 86, 0.35);
    border: 1px solid rgba(154, 196, 86, 0.65);
    border-radius: 4px;
    cursor: default;
    float: left;
    color: var(--primaryColor);
    margin-right: 5px;
    margin-top: 5px;
    width: initial !important;
    padding: 5px 10px;
    padding-right: 24px !important;
    font-size: 13px !important;
    letter-spacing: 0.3px;
}

.select2-container--default .select2-search--inline .select2-search__field {
    width: 100% !important;
    font-size: 16px;
    margin-top: 0px;
    padding: 0;
    padding-left: 5px;
    line-height: 27px;
    padding-top: 6px;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    position: absolute;
    font-size: 17px;
    width: 20px;
    height: 20px;
    top: 3px;
    text-align: center;
    color: #e45555;
    right: 0px;
}

.floating-group.focused .select2-container--default .select2-selection--multiple .select2-selection__rendered {
    padding-bottom: 7px;
    padding-top: 17px;
    padding-left: 17px;
}
.select2-selection__rendered {
    margin-top: 5px;
}

.asset-strip-card.activeCard, .asset-strip-card.activeCard * {
    background-color: var(--secondaryColor);
    color: var(--primaryColor) !important;
}
.asset-strip-card:hover, .asset-strip-card:hover * {
    background-color: #E8E8E8;
}

.live-trials-page__status-badge {
    font-size: 0.875rem;
    padding: 0.55em 0.85em;
    letter-spacing: 0.04em;
}

.live-trials-page__pulse-dot {
    font-size: 0.55em;
    vertical-align: middle;
    animation: live-trials-pulse 1.4s ease-in-out infinite;
}

@keyframes live-trials-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}

.live-trials-empty__icon {
    font-size: 3rem;
    color: var(--primaryColor);
    opacity: 0.85;
}

.live-trials-empty__message {
    max-width: 42rem;
}

.live-trials-item__package-image-wrap {
    flex-shrink: 0;
    width: 7.5rem;
    min-height: 4.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.35rem;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 0.375rem;
}

.live-trials-item__package-image {
    display: block;
    max-width: 100%;
    max-height: 4.5rem;
    width: auto;
    height: auto;
    object-fit: contain;
}

.live-trial-info--compact .live-trials-item__package-image-wrap {
    width: 6.5rem;
    min-height: 3.75rem;
}

.live-trial-info--compact .live-trials-item__package-image {
    max-height: 3.75rem;
}

.live-trials-item__player iframe {
    border: 0;
    border-radius: 0.375rem;
}

.live-trials-streams {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    width: 100%;
    max-width: 90rem;
    margin-inline: auto;
}

.live-trials-stream {
    width: 100%;
}

.live-trials-stream__info-col {
    min-width: 0;
    text-align: left;
}

@media (min-width: 1400px) {
    .live-trials-stream__info-col .live-trial-info > .d-flex {
        align-items: flex-start;
    }

    .live-trials-stream__info-col .live-trial-info .d-flex.flex-wrap {
        justify-content: flex-start;
        align-items: flex-start;
    }

    .live-trials-stream__info-col .live-trials-item__package-image-wrap {
        width: 5.5rem;
        min-height: 3.25rem;
    }

    .live-trials-stream__info-col .live-trials-item__package-image {
        max-height: 3.25rem;
    }
}

.live-trials-locked {
    background: linear-gradient(135deg, rgba(39, 63, 70, 0.04), rgba(216, 192, 185, 0.18));
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 0.375rem;
    overflow: hidden;
}

.live-trials-locked__inner {
    height: 100%;
    background: linear-gradient(135deg, rgba(39, 63, 70, 0.04), rgba(216, 192, 185, 0.18));
}

.live-trials-locked-link {
    color: var(--bs-body-color);
    transition: opacity 0.2s ease;
}

.live-trials-locked-link:hover,
.live-trials-locked-link:focus {
    color: var(--bs-body-color);
    opacity: 0.92;
}

.live-trials-locked-link .live-trial-info h2,
.live-trials-locked-link:hover .live-trial-info h2,
.live-trials-locked-link:focus .live-trial-info h2 {
    color: var(--bs-body-color);
}

.live-trials-locked-link .live-trial-info .text-muted,
.live-trials-locked-link:hover .live-trial-info .text-muted,
.live-trials-locked-link:focus .live-trial-info .text-muted,
.live-trials-locked-link .live-trial-info .text-body-secondary,
.live-trials-locked-link:hover .live-trial-info .text-body-secondary,
.live-trials-locked-link:focus .live-trial-info .text-body-secondary {
    color: var(--bs-secondary-color) !important;
}

.live-trials-locked-link:hover .live-trials-locked,
.live-trials-locked-link:focus .live-trials-locked {
    box-shadow: 0 0.35rem 0.85rem rgba(0, 0, 0, 0.12);
}

.live-trials-locked__footer {
    border-color: rgba(0, 0, 0, 0.08) !important;
}

.live-trials-picker__link {
    display: block;
    height: 100%;
    color: var(--bs-body-color);
    text-decoration: none;
}

.live-trials-picker__link:hover,
.live-trials-picker__link:focus,
.live-trials-picker__link:active {
    color: var(--bs-body-color);
    text-decoration: none;
}

.live-trials-picker__link .live-trial-info h2,
.live-trials-picker__link:hover .live-trial-info h2,
.live-trials-picker__link:focus .live-trial-info h2 {
    color: var(--bs-body-color);
}

.live-trials-picker__link .live-trial-info .text-muted,
.live-trials-picker__link:hover .live-trial-info .text-muted,
.live-trials-picker__link:focus .live-trial-info .text-muted,
.live-trials-picker__link .live-trial-info .text-body-secondary,
.live-trials-picker__link:hover .live-trial-info .text-body-secondary,
.live-trials-picker__link:focus .live-trial-info .text-body-secondary {
    color: var(--bs-secondary-color) !important;
}

.live-trials-picker__tile {
    border: 1px solid rgba(0, 0, 0, 0.125);
    padding: 1.25rem 1rem 1rem;
    text-align: left;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.live-trial-info__sessions {
    margin-top: 0.25rem;
}

.live-trials-picker__link:hover .live-trials-picker__tile {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    transform: translateY(-2px);
}

.live-trials-picker__action {
    width: 100%;
}

.live-trials-nav-label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    line-height: 1.2;
}

.live-trials-nav-count {
    font-size: 0.75rem;
    padding: 0.25em 0.5em;
    line-height: 1;
    vertical-align: baseline;
}

.mainNav > .nav > .nav-item > .nav-link.active .live-trials-nav-count {
    color: #fff;
}