body {
    scroll-behavior: smooth;
}

#main-contents {
    margin: 0;
}


/* Note: Hiding `Get Help via Chat & Zoom` libchat (consumes too much real estate) */
#lcs_slide_out-18270,
#lcs_slide_out_button-18270 {
    visibility: hidden;
}
.s-lch-widget-float .tab_overlay {
    visibility: hidden;
    display: none;
}

#workshops_series_list {
    transition: height max-height 150ms ease;
}

#reserve-a-room > span {
    height: 1rem;
}
#reserve-a-room > span.bc-icon {
    width: 1.4rem;
    height: 1.2rem;
}
#reserve-a-room > span:not(.bc-icon) {
    line-height: 0.75rem;
    /* display: inline-block; */
    vertical-align: middle;
}

tr {
    border: none;
}

tr.date_row td,
.table-striped tbody tr.date_row td {
    font-size: 1em;
    color: white;
    background-color: #7b2240;
    border: none;
}

.table-striped thead tr th {
    background-color: rgb(249, 249, 249);
}

tr.date_row.sticky-top {
    position: sticky;
    top: 54.4px;
    top: 3.4rem;
}

.week-labels .week-label-holder {
    font-size: 0.75rem;
    line-height: 0.75rem;
}

.week-labels .week-label-holder label {
    max-width: 7rem;
    text-overflow: ellipsis "..";
}

.week-labels .week-label-holder label input[type=checkbox] {
    margin-right: 0.0625rem;
    /* height: 0.75rem; */
    vertical-align: bottom;
}

.week-labels .week-label-holder label {
    padding-right: 0.5rem !important;
}

.limit_to {
    float: left;
    padding: 5px;
    margin: 2px;
}

.limit_to:hover {
    cursor: pointer;
    background-color: #f0f0f0;
}

.limit_to:first-child {
    padding-right: 10px;
}

.locationRow>td {
    padding-top: 0;
    padding-bottom: 0;
}

.locationRow .location {
    width: 100%;
    text-align: center;
    margin-top: 10px;
    margin-bottom: 0;
    font-weight: bold;
}

.sticky-top,
tr.sticky-top {
    z-index: 999;
}
.sticky-top-secondary {
    z-index: 998;
}

td {
    text-align: left;
    border: none;
}

label.locations,
label.categories,
label.tags {
    white-space: nowrap;
    overflow: hidden;
    cursor: pointer;
    max-width: 14rem;
    font-size: 0.75rem;
}
.text-wrap>input,
.locations>input,
label.locations>input,
label.categories>input,
label.tags>input {
    font-size: initial;
    margin: 2px; /* WCAG 2.2 AA */
}
label.categories>input:first-child {
    margin-top: 3px;
}

label.categories {
    margin-top: 0.1rem;
    margin-bottom: 0.1rem;
}

.time-wrap {
    min-width: 8.5rem;
}

.room-name,
.host-name,
.host-department,
.category-badge {
    text-overflow: ellipsis "...";
    overflow: hidden;
    white-space: nowrap;
    max-width: 9rem;
}

.category-badge {
    cursor: pointer;
    max-width: 12rem;
}

.table .category-badge,
.table .room-name,
.table .host-name,
.table .host-department {
    max-width: 7rem;
}

.backToTop.transparent {
    background-color: #fffb;
}

#workshop-categories-ruler {
    transition: all 150ms ease-in;
    color: #0008;
    margin: 0.0625rem 0;

}
#workshop-categories-ruler:hover {
    color: #000;
}

#workshop-categories-expander {

    transition: all 150ms ease-in;
    color: #0008;
    background-color: transparent;

    position: absolute;
    top: -0.65rem;
    right: 45%;
}
#workshop-categories-expander > span {
    font-size: 0.75rem;
}

#workshop-categories-expander:hover {
    /* color: #ffffff; */
    /* background-color: #000000; */
    color: #000;
}

@media (min-width: 576px) {

    .table .category-badge,
    .table .room-name,
    .table .host-name,
    .table .host-department {
        /* max-width: 9rem; */
        max-width: 11rem;
    }
}

@media (min-width: 768px) {

    .table .room-name {
        max-width: 8rem;
    }

    .table .category-badge {
        max-width: 7.8rem;
    }

    .table .host-name {
        max-width: 8rem;
    }

    .table .host-department {
        max-width: 7rem;
    }

    /*
    .table .host-name {
        max-width: 13rem;
    }
    */
}

@media (min-width: 950px) {
    .table .category-badge {
        max-width: 11rem;
    }
}

@media (min-width: 1100px) {
    .table .room-name {
        max-width: 10rem;
    }
}

.categories,
.tags {
    display: block;
}

.workshopsTable {
    border: solid 1px #f0f0f0;
}

.workshopSubscriptionSection {
    border-radius: 0.3rem;
}

.workshopSubscriptionSection:hover {
    /* color: #212529; */
    background-color: rgba(0, 0, 0, 0.075);
}

a.workshopsNoteLink {
    color: inherit;
}

.dropdown-toggle[aria-expanded="true"]::after {
    border-top: 0;
    border-right: 4px solid transparent;
    border-bottom: 4px solid;
    border-left: 4px solid transparent;
}

div.subscriptionForm {
    background-color: unset;
    border: none;
    margin: initial;
    padding: initial;
}

div.subscriptionForm button.workshopExpand.text-primary,
div.subscriptionForm button.workshopExpand.text-primary:hover {
    color: maroon;
}

.calendar-link-wrapper {
    margin-left: auto;
    margin-right: auto;
    position: relative;
    width: 150px;
}

.bind {
    background: white;
    border: solid 1px grey;
    width: 14px;
    height: 18px;
    position: absolute;
    top: -9px;
}

.leftBind {
    left: 24px;
}

.rightBind {
    left: 117px;
}

a.btn {
    text-decoration: initial;
}

a.calendar-button {
    border: 1px solid #800000;
    border-radius: 3px;
    display: inline-block;
    width: 150px;
    height: 120px;
    text-decoration: none !important;
    margin-bottom: 5px;
}

a.calendar-button:hover {
    color: #7b2240;
}

div.top-div {
    height: 50px;
}

div.year-div {
    font-size: 10pt;
    vertical-align: middle;
    height: 20px;
    padding-top: 3px;
}

div.month-div {
    font-size: 13pt;
    vertical-align: middle;
    height: 30px;
}

div.bottom-div {
    font-size: 32pt !important;
    height: 70px;
    vertical-align: middle;
    display: table-cell;
    width: 150px;
}
div.bottom-div .dow {
    font-size: 0.85rem !important;
    height: 1rem;
    line-height: 1rem;
    vertical-align: middle;

    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
}

.page-title {
    margin-top: 0px;
}

/*
.public_event {
    text-decoration: none;
    display: inline-block;
    width: 30px;
    opacity: 0.9 !important;
    z-index: 998;
} */

.calendar-pager.calendar-pager-1 {
    margin-bottom: 0.5rem;
}

#month-calendar-link {
    position: absolute;
    top: 51px;
    left: 125px;
}

#month-calendar-link:hover {
    color: #7b2240;
}

.table th,
.table td {
    padding: 0.5rem;
}

#search-options-container .bg-primary {
    background-color: #d6d8db !important;
    color: black;
}

#search-options-container .bg-secondary {
    background-color: rgb(218, 218, 218) !important;
    color: black;
}

#date-ranges-link,
#categories-link,
#locations-link,
#workshops-link,
#tags-link {
    font-weight: bold;
}

.tags-link {
    font-size: 0.8em;
    color: #6c6c6c;
}
.tags-link:hover {
    cursor: pointer;
}

#date-ranges-link:hover,
#date-ranges-link:focus,
#date-ranges-link:hover>label,
#date-ranges-link:focus>label,
#categories-link:hover,
#categories-link:focus,
#locations-link:hover,
#locations-link:focus,
#workshops-link:hover,
#workshops-link:focus,
#tags-link:hover,
#tags-link:focus {
    text-decoration: none;
}

.notice-icon {
    color: orange;
}

.eventTypeCategoriesHolder:empty {
    display: none;
}

.ui-effects-transfer {
    border: dotted 0.0625rem maroon;
    z-index: 10000;
}

.border-secondary.border-secondary-low {
    /* #6c757d */
    border-color: rgba(108, 117, 125, 0.3) !important;
}

.events-table thead tr,
.events-table tbody tr {
    scroll-snap-type: y mandatory;
    container-type: scroll-state;
    container-name: y-scroll;
    transition: opacity 0.25s;
}
tbody.passed > tr:first-child > td {
    background-color: #3f3f3f;
    opacity: 0.9;
}
tbody.passed > tr:not(:first-child) > td {
    opacity: 0.85;
}
/* @container y-scroll scroll-state((scrolled: bottom) or (scrolled: top)) { */
@container y-scroll scroll-state((stuck: bottom) or (stuck: top)) {
    tbody.passed > tr:first-child > td {
        opacity: 1;
    }
    tbody.passed > tr:not(:first-child) > td {
        opacity: 1;
    }
}

.bg-light-gray {
    --et-border-color: #dadada;
    background-color: var(--et-border-color);
}

.events-table {
    --et-border-color: #dadada;
    --et-border-size: 0.5px;
    --et-border-style: inset;
}
.events-table > thead > tr > th,
.events-table > tbody > tr > td {
    text-wrap: wrap;
}
.events-table.table-bordered {
    border-collapse: collapse;
    /* border: var(--et-border-size) var(--et-border-style) var(--et-border-color); */
}

.event-name span {
    font-size: 1rem;
}
.event-name:hover {
    text-decoration: underline;
}

.event-names-row,
.event-info-row {
    --et-table-active-color: #b5b5b5;
    --et-table-active-color-hover: #f9f9f9;
    /* --et-table-active-column-border: rgb(218, 218, 218); */
    border: solid 1px transparent;
}


/* Info - Being Prepared */
.event-names-row.table-info {
    --et-table-active-color: #bee5eb;
    --et-table-active-color-hover: #f9f9f9;
    --et-border-color: rgb(0, 234, 255);
}
.event-info-row.table-info {
    --et-table-active-color: #f0feff;
    --et-table-active-color-hover: #f9f9f9;
    --et-border-color: rgb(168, 211, 211);    
}
.event-names-row.table-info td {
    background-color: var(--et-table-active-color);
    border-color: var(--et-table-active-color);
}
.event-info-row.table-info td {
    background-color: var(--et-table-active-color);
}


/* Warning - Happenning now */
.event-names-row.table-warning {
    /* #f5c6cb */
    --et-table-active-color: #ffdf7e;
    --et-table-active-color-hover: #ffdf7e;
    --et-border-color: #ffdf7e;
}
.event-info-row.table-warning {
    /* #f5c6cb */
    --et-table-active-color: #fffae7;
    --et-table-active-color-hover: #f9f9f9;
    --et-border-color: #fffae7;
}
.event-names-row.table-warning td {
    background-color: var(--et-table-active-color);
    border-color: var(--et-table-active-color);
}
.event-info-row.table-warning td {
    background-color: var(--et-table-active-color);
}


/* Danger - Passed/Ended */
.event-names-row.table-danger {
    --et-table-active-color: #ff9a9a;
    --et-table-active-color-hover: #f9f9f9;
    --et-border-color: rgb(162, 66, 66);
}
.event-info-row.table-danger {
    --et-table-active-color: #ffdedebd;
    --et-table-active-color-hover: #f9f9f9;
    --et-border-color: rgb(162, 66, 66);
}
.event-names-row.table-danger td {
    background-color: var(--et-table-active-color);
    border-color: var(--et-table-active-color);
}
.event-info-row.table-danger td {
    background-color: var(--et-table-active-color);
}

.event-names-row:hover,
.event-names-row:hover + .event-info-row,
.event-info-row:hover,
.event-names-row:has(+ .event-info-row:hover) {
    transition: all .25s ease-in;
}
/* .event-names-row > td {
    border: solid 1px var(--et-table-active-column-border);
    border: solid 1px var(--et-table-active-color);
} */

.event-names-row:hover td,
.event-names-row:has(+ .event-info-row:hover) td {
    background-color: var(--et-table-active-color);
    border: solid 1px var(--et-table-active-color);
    border-top: var(--et-border-size) var(--et-border-style) var(--et-border-color);
    box-shadow: 0 2px 2px -3px rgba(0, 0, 0, 0.5) inset;
}
.event-names-row:hover td:first-child,
.event-names-row:has(+ .event-info-row:hover) td:first-child {
    border-left: var(--et-border-size) var(--et-border-style) var(--et-border-color);
}
.event-names-row:hover td:last-child,
.event-names-row:has(+ .event-info-row:hover) td:last-child {
    border-right: var(--et-border-size) var(--et-border-style) var(--et-border-color);
}
.event-info-row:hover td,
.event-names-row:hover + .event-info-row td {
    background-color: var(--et-table-active-color-hover);
    border-bottom: var(--et-border-size) var(--et-border-style) var(--et-border-color);
    /* box-shadow: 0 -4px 4px -2px rgba(0, 0, 0, 0.5) inset; */
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.5);
}
.event-info-row:hover td:first-child,
.event-names-row:hover + .event-info-row td:first-child {
    border-left: var(--et-border-size) var(--et-border-style) var(--et-border-color);
}
.event-info-row:hover td:last-child,
.event-names-row:hover + .event-info-row td:last-child {
    border-right: var(--et-border-size) var(--et-border-style) var(--et-border-color);
}

tbody.passed>tr:first-child>td,
.event-names-row,
.event-names-row+tr {
    transition: all .5s ease-in-out;
}

.event-names-row.passed {
    /* opacity: 0.775; */
    opacity: 0.5;
}

.event-names-row.passed,
.event-info-row.passed {
    /* text-decoration: line-through; */
}

.event-names-row.passed+tr {
    opacity: 0.8;
}

tbody.passed>tr:first-child>td:hover,
.event-names-row.passed:hover,
.event-names-row.passed:hover+tr,
.event-names-row.passed+tr:hover {
    /* cursor: pointer; */
    opacity: 1;
}

.event-names-row.passed,
.event-names-row.passed+tr,
.event-names-row.passed > td,
.event-names-row.passed+tr > td,
.event-names-row.passed > td > span,
.event-names-row.passed+tr > td > span,
.event-names-row.passed+tr > td > ul a {
    /*text-decoration-line: line-through;*/
    text-decoration-color: #00000035;
    font-style: italic;
}
.event-names-row.passed:hover,
.event-names-row.passed:hover+tr,
.event-names-row.passed:hover > td,
.event-names-row.passed:hover+tr > td,
.event-names-row.passed:hover > td > span,
.event-names-row.passed:hover+tr > td > span,
.event-names-row.passed:hover+tr > td > ul a {
    /*text-decoration-line: line-through;*/
    text-decoration-color: #00000005;
    font-style: italic;
}

.old {
    opacity: 0.65;
}

button.btn-link:not(:disabled) {
    color: #0f4880;   
}

.not-library-building {
    background-color: #0f478012;
    color: #790000;
}

.collapsing {
    transition: height 0.2s ease; /* Faster */
}

@media print {

    *,
    .font-bigger,
    .events-table tr td a {
        font-size: 1.2rem;
        line-height: 1.5rem;

    }
    .events-table {
        margin-bottom: 0;
    }

    .container {
        max-width: 100%;
    }

    .sticky-top,
    tr.date_row.sticky-top {
        position: initial !important;
    }

    @page {
        /* size: auto; */
        /* Hides title */
        /* margin: 1mm; */
    }

    /*
    header {
        display: none;
    }
    */
    .page-header {
        display: none;
    }
    #page-breadcrumbs {
        display: none;
    }
    .pageScrollProgressWrap {
        display: none;
    }
    #global-header-message,
    .todays-hours-link,
    a[role=button]#lcs_slide_out_button-18270,
    footer {
        display: none;
    }

    .page_title {
        font-size: 2rem;
    }

    .container[role="main"] {
        padding: 0;
    }
    .container[role="main"],
    #body-main,
    #main-container,
    #main-contents,
    #results,
    #results>#eventSubscriptionForm,
    #results>#eventSubscriptionForm>table {
        width: 100% !important;
        margin: 0;
    }

    #main-contents,
    #results {
        margin: 0 !important;
        padding: 0 !important;
    }

    #results {
        display: block;
        max-width: 100%;
        width: 100%;
        min-width: 100%;
    }

    span,
    label {
        color: black;
    }

    .category-badge {
        border: none;
        max-width: 15rem !important;
    }

    .today,
    .tomorrow,
    .nextWeek,
    .old {
        display: none;
    }

    .passed {
        color: black;
    }
    .events-table {
        color: black;
        --et-border-color: rgba(124, 124, 124, 0.15) !important;
        --et-border-size: 1px;
        --et-border-style: inset;
    }
    .events-table,
    .event-names-row,
    .event-info-row {
        --et-border-color: rgba(124, 124, 124, 0.15) !important;
    }
    .events-table tr {
        opacity: 1 !important;
    }

    .events-table,
    .events-table tbody,
    .events-table th,
    .events-table td {
        border: solid 2px var(--et-border-color) !important;
    }
    .events-table th:nth-child(1),
    .events-table td:nth-child(1) {
        min-width: 25%;
    }
    .events-table th:nth-child(2),
    .events-table td:nth-child(2) {
        text-align: left !important;
        min-width: 25%;
    }
    .events-table th:nth-child(3),
    .events-table td:nth-child(3) {
        min-width: 20%;
    }
    .events-table th:nth-child(4),
    .events-table td:nth-child(4) {
        min-width: 25%;
    }

    .events-table th {
        padding-left: 14pt !important;
        line-height: 1.1;
    }

    .events-table td:nth-child(1),
    .events-table td:nth-child(2) {
        padding: 0;
    }

    .events-table th:nth-child(3) *,
    .events-table td:nth-child(3) * {
        font-variant-numeric: tabular-nums;
    }

    /* .events-table th:nth-child(3), */
    .events-table td:nth-child(3),
    .time-wrap {
        text-align: left !important;
        padding: 0 !important;
    }
    .time-wrap > span {
        text-wrap: nowrap;
    }

    .events-table th:nth-child(4),
    .events-table td:nth-child(4) {
        text-align: left !important;
        /* padding: 0 !important; */
    }
    /*
    .time-wrap, .time-wrap > span {
        font-style: normal !important;
    }
    */
    .time-wrap-dash {
        clear: both;
        display: inline;
        padding-left: 0.0575rem;
        padding-right: 0.25rem;
    }

    .events-table .italic,
    .events-table tr td,
    .events-table tr td span,
    .events-table tr td a {
        font-style: normal;
    }
    .events-table thead th {
        /* color: white; */
        /* background-color: #7b2240 !important; */
        color: black;
        background-color: #d6d8db !important;
        border-bottom: solid 2px var(--et-border-color) !important;
    }

    /*
    .room-name:not([title]) {
        font-weight: bolder;
    }
    */
    .room-suffix {
        font-weight: normal;
        font-style: italic !important;
    }
    .room-number {
        font-weight: bold;
    }
    .room-name[title] {
        font-style: italic;
    }
    .room-building {
        max-width: 14vw;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .room-sub-name,
    .room-sub-name > .room-suffix {
        display: block;
        white-space: nowrap;
        /* overflow-x: clip; */
        /* text-overflow: ellipsis; */
        overflow-x: visible;
        text-overflow: unset;
        word-wrap: break-word;
        max-width: 25ch;
        max-width: 25vw;
    }
    .room-sub-name > .room-suffix {
        width: 100%;
    }

    .category-badge {
        max-width: 25vw;
        white-space: nowrap;
        overflow-x: clip;
        text-overflow: ellipsis;
        display: inline-block;
    }

    /* Least amount of space */
    .events-table span.room-name,
    .events-table div.room-name {
        /* display: inline !important; */
        white-space: normal;
        word-wrap: break-word;
    }

    .events-table tr.date_row td {
        background-color: #7b2240e8 !important;
    }
    .events-table tr.date_row td,
    .events-table tr.date_row td span {
        color: white;
    }

    /* .events-table tbody tr.event-names-row:nth-child(even) td { */
    .events-table tbody tr.event-names-row td {
        background-color: #f0f0f0 !important;
    }
    .event-names-row td:first-child {
        color: red;
        padding: 3pt;
        padding-bottom: 4pt;
    }

    .event-name span {
        font-size: 22pt;
    }

    .table th,
    .table td {
        padding: 0.175rem;
        overflow: visible;
        word-wrap: break-word;
        text-wrap: wrap;
    }
    .table .room-name,
    .table .host-name,
    .table .host-department,
    .table .category-badge ,
    .table .room-name .room-suffix {
        max-width: unset;
        overflow: inherit;
        word-wrap: break-word;
        white-space: collapse;
        text-overflow: unset;
        text-wrap: wrap;
    }

    .host-name {
        /* text-decoration: underline; */
        border-bottom: solid 2px black;
        display: inline;
    }

    .events-table .eventTypeCategoriesHolder:not(:empty) :first-child {
            padding-top: 0;
    }
    .events-table .eventTypeCategoriesHolder > li > a {
        font-size: 13pt;
        width: fit-content;
        text-overflow: ellipsis "..";
        max-width: 230pt !important;
        overflow-x: clip;
        word-break: break-all;
        text-wrap: nowrap;
    }
    .table .host-department {
        text-overflow: ellipsis "..";
        max-width: 300pt !important;
        overflow-x: clip;
        word-break: break-all;
        text-wrap: nowrap;
    }

    .badge {
        font-weight: normal;
    }
    .badge-pill {
        padding: 0.05rem;
        font-style: italic !important;
    }

}