
.tm-event-count {
    margin-top: 8px;
    color: #70899c;
    font-size: 12px;
    letter-spacing: .05em;
}

.tm-feature-button {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
}

.tm-feature-button strong {
    color: #efe3c3;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
    line-height: 1.3;
}

.tm-feature-button span {
    color: #d2ad5a;
    font-family: Georgia, "Times New Roman", serif;
}

.tm-feature-button small {
    color: #748da1;
    line-height: 1.4;
}

.tm-event-image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tm-event-image[hidden] {
    display: none !important;
}

.tm-event-marker {
    cursor: pointer;
}



/* =========================================================
   EXPLORER CONTROLS
   ========================================================= */

.tm-search-wrap {
    position: relative;
    margin-top: 14px;
}

.tm-search {
    width: 100%;

    padding: 11px 38px 11px 12px;

    border: 1px solid #29465e;
    border-radius: 9px;

    outline: none;

    background: #071724;
    color: #e9e0cb;

    font-size: 13px;
}

.tm-search::placeholder {
    color: #587084;
}

.tm-search:focus {
    border-color: #b99852;

    box-shadow:
        0 0 0 2px
        rgba(210,173,90,.09);
}

.tm-search-clear {
    position: absolute;

    right: 5px;
    top: 50%;

    width: 30px;
    height: 30px;

    transform:
        translateY(-50%);

    border: 0;
    border-radius: 50%;

    background: transparent;
    color: #7d93a5;

    font-size: 20px;
}

.tm-search-clear:hover {
    color: #e2c77d;
    background: #102637;
}

.tm-action-row {
    display: grid;
    grid-template-columns: 1fr 1fr;

    gap: 8px;

    margin-top: 10px;
}

.tm-action-button {
    padding: 8px 10px;

    border: 1px solid #29465e;
    border-radius: 8px;

    background: #091a28;
    color: #93a9ba;

    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .07em;
}

.tm-action-button:hover {
    border-color: #bd9e58;
    color: #e4ca86;
}


/* =========================================================
   EVENT INDEX
   ========================================================= */

.tm-event-index-card {
    max-height: 430px;
}

.tm-event-list {
    display: flex;
    flex-direction: column;

    gap: 3px;

    margin-top: 12px;

    max-height: 340px;

    overflow-y: auto;

    padding-right: 4px;
}

.tm-event-list::-webkit-scrollbar {
    width: 6px;
}

.tm-event-list::-webkit-scrollbar-thumb {
    border-radius: 20px;
    background: #29465e;
}

.tm-event-list-item {
    width: 100%;

    display: flex;
    flex-direction: column;

    gap: 3px;

    padding: 10px;

    border: 1px solid transparent;
    border-radius: 8px;

    background: transparent;

    color: inherit;

    text-align: left;
}

.tm-event-list-item:hover {
    border-color: #29465e;
    background: #0b1b29;
}

.tm-event-list-date {
    color: #c3a359;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 11px;
}

.tm-event-list-item strong {
    color: #dce4e8;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 14px;

    line-height: 1.25;
}

.tm-event-list-item small {
    overflow: hidden;

    color: #687f92;

    white-space: nowrap;
    text-overflow: ellipsis;
}

.tm-event-list-empty {
    padding: 16px 0;

    color: #70879a;

    font-family:
        Georgia,
        "Times New Roman",
        serif;
}


/* =========================================================
   SHAREABLE EVENT LINK
   ========================================================= */

.tm-modal-actions {
    display: flex;
    align-items: center;

    gap: 12px;

    margin-top: 22px;
}

.tm-copy-link {
    padding: 9px 14px;

    border: 1px solid #3b5870;
    border-radius: 8px;

    background: #0a1b29;
    color: #d8bd76;

    font-size: 12px;

    text-transform: uppercase;
    letter-spacing: .08em;
}

.tm-copy-link:hover {
    border-color: #d2ad5a;
    color: #f1dda1;
}

.tm-copy-status {
    color: #7690a3;

    font-size: 11px;

    overflow-wrap: anywhere;
}


@media (max-width: 900px) {

    .tm-event-index-card {
        grid-column: 1 / -1;
        max-height: none;
    }

    .tm-event-list {
        max-height: 260px;
    }

}


/* =========================================================
   OFFLINE EVENT CLUSTERING
   ========================================================= */

.tm-event-icon {
    background: transparent !important;
    border: 0 !important;
}

.tm-event-pin {
    position: absolute;

    left: 50%;
    top: 50%;

    width: 14px;
    height: 14px;

    transform:
        translate(-50%, -50%);

    border: 2px solid #f4df9d;
    border-radius: 50%;

    background: #2d91c7;

    box-shadow:
        0 0 0 4px rgba(45,145,199,.13),
        0 0 13px rgba(45,145,199,.48);

    transition:
        transform .15s ease,
        box-shadow .15s ease;
}

.tm-event-icon:hover
.tm-event-pin {
    transform:
        translate(-50%, -50%)
        scale(1.24);

    box-shadow:
        0 0 0 5px rgba(210,173,90,.17),
        0 0 20px rgba(210,173,90,.7);
}

.tm-event-pin-featured {
    width: 17px;
    height: 17px;

    background: #d2ad5a;

    border-color: #fff0ba;

    box-shadow:
        0 0 0 5px rgba(210,173,90,.15),
        0 0 18px rgba(210,173,90,.65);
}

.tm-event-pin-uncertain {
    border-style: dashed;
    border-color: #b7ced9;
}


/* cluster */

.tm-cluster {
    background: transparent !important;
    border: 0 !important;
}

.tm-cluster-core {
    position: absolute;

    left: 50%;
    top: 50%;

    display: grid;
    place-items: center;

    width: 42px;
    height: 42px;

    transform:
        translate(-50%, -50%);

    border: 1px solid #d8bd76;
    border-radius: 50%;

    background:
        radial-gradient(
            circle at 35% 30%,
            #24465d 0%,
            #102839 45%,
            #071823 100%
        );

    color: #f2dfaa;

    box-shadow:
        0 0 0 5px rgba(47,112,151,.12),
        0 6px 20px rgba(0,0,0,.45),
        0 0 18px rgba(210,173,90,.18);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    transition:
        transform .16s ease,
        box-shadow .16s ease;
}

.tm-cluster:hover
.tm-cluster-core {
    transform:
        translate(-50%, -50%)
        scale(1.1);

    box-shadow:
        0 0 0 6px rgba(210,173,90,.13),
        0 8px 25px rgba(0,0,0,.5),
        0 0 25px rgba(210,173,90,.35);
}

.tm-cluster-core strong {
    font-size: 14px;
}

.tm-cluster-medium
.tm-cluster-core {
    width: 48px;
    height: 48px;

    border-width: 2px;
}

.tm-cluster-medium
.tm-cluster-core strong {
    font-size: 16px;
}

.tm-cluster-large
.tm-cluster-core {
    width: 54px;
    height: 54px;

    border-width: 2px;
}

.tm-cluster-large
.tm-cluster-core strong {
    font-size: 17px;
}


/* spider legs */

.leaflet-marker-icon {
    outline: none;
}

.leaflet-cluster-anim
.leaflet-marker-icon,
.leaflet-cluster-anim
.leaflet-marker-shadow {
    transition:
        transform .3s ease-out,
        opacity .3s ease-in;
}


/* =========================================================
   INVESTIGATION LIBRARY TIMELINE WINDOW
   ========================================================= */

.tm-range-inputs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;

    margin-top: 15px;
}

.tm-year-input-group {
    display: flex;
    flex-direction: column;

    gap: 6px;
}

.tm-year-input-group span {
    color: #71899a;

    font-size: 10px;
    font-weight: 700;

    text-transform: uppercase;
    letter-spacing: .1em;
}

.tm-year-input {
    width: 100%;

    padding: 9px 10px;

    border: 1px solid #29465e;
    border-radius: 8px;

    outline: none;

    background: #071724;
    color: #ead9a5;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 14px;
}

.tm-year-input:focus {
    border-color: #c0a05a;

    box-shadow:
        0 0 0 2px
        rgba(210,173,90,.09);
}

.tm-preset-row {
    display: flex;
    flex-wrap: wrap;

    gap: 7px;

    margin-top: 12px;
}

.tm-range-preset {
    padding: 6px 9px;

    border: 1px solid #29465e;
    border-radius: 20px;

    background: #091a28;
    color: #7891a4;

    font-size: 10px;

    text-transform: uppercase;
    letter-spacing: .055em;
}

.tm-range-preset:hover,
.tm-range-preset.active {
    border-color: #c0a05a;
    color: #ebd695;
    background: #14293a;
}

.tm-dual-slider {
    display: flex;
    flex-direction: column;

    gap: 9px;

    margin-top: 14px;
}

.tm-slider-row {
    display: grid;

    grid-template-columns:
        42px
        minmax(0, 1fr);

    gap: 9px;

    align-items: center;
}

.tm-slider-row-label {
    color: #6f8799;

    font-size: 9px;
    font-weight: 700;

    text-transform: uppercase;
    letter-spacing: .08em;
}

.tm-timeline-scale {
    display: flex;
    justify-content: space-between;
    align-items: center;

    gap: 10px;

    margin-top: 8px;
}

#timelineRangeLabel {
    flex: 1;

    color: #c1a35f;

    text-align: center;

    font-family:
        Georgia,
        "Times New Roman",
        serif;
}

@media (max-width: 700px) {

    .tm-range-inputs {
        grid-template-columns: 1fr;
    }

    .tm-preset-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

}


/* =========================================================
   TAG LIBRARY CONTROLS
   ========================================================= */

.tm-tag-search {
    margin-top: 12px;
}

.tm-tag-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    margin:
        9px 0
        4px;

    color: #6c8496;

    font-size: 10px;
}

.tm-tag-toggle {
    padding: 0;

    border: 0;

    background: transparent;
    color: #c1a35f;

    cursor: pointer;

    font-size: 10px;
    font-weight: 700;

    text-transform: uppercase;
    letter-spacing: .06em;
}

.tm-tag-toggle:hover {
    color: #eed99b;
}


/* =========================================================
   EVENT LOCATIONS + PROVENANCE
   ========================================================= */

.tm-event-detail-section {
    margin-top: 22px;

    padding-top: 17px;

    border-top:
        1px solid
        rgba(91,117,135,.23);
}

.tm-event-detail-label {
    margin-bottom: 10px;

    color: #c0a05b;

    font-size: 10px;
    font-weight: 700;

    text-transform: uppercase;
    letter-spacing: .11em;
}

.tm-event-location-list {
    display: grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(180px,1fr)
        );

    gap: 7px;
}

.tm-event-location-button {
    display: flex;
    flex-direction: column;

    gap: 3px;

    padding: 10px 11px;

    border:
        1px solid
        #29465e;

    border-radius: 8px;

    background: #081926;
    color: #cbd8df;

    cursor: pointer;

    text-align: left;
}

.tm-event-location-button:hover,
.tm-event-location-button.active {
    border-color: #c0a05b;
    background: #102536;
}

.tm-event-location-button strong {
    color: #e5e9e9;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 13px;
}

.tm-event-location-button span {
    color: #c1a35f;

    font-size: 10px;
}

.tm-event-location-button small {
    color: #6d8597;

    font-size: 10px;
}

.tm-event-source-list {
    display: flex;
    flex-direction: column;

    gap: 8px;
}

.tm-event-source-item {
    display: grid;

    grid-template-columns:
        minmax(0,1fr)
        auto;

    gap:
        3px
        12px;

    align-items: center;

    padding: 10px 11px;

    border:
        1px solid
        rgba(52,78,96,.65);

    border-radius: 8px;

    background:
        rgba(7,23,36,.7);
}

.tm-event-source-item strong {
    grid-column: 1;

    color: #d9e1e3;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 13px;
}

.tm-event-source-item span {
    grid-column: 1;

    color: #70899a;

    font-size: 10px;
}

.tm-event-source-item a {
    grid-column: 2;
    grid-row: 1 / span 2;

    color: #c9aa64;

    font-size: 10px;
    font-weight: 700;

    text-decoration: none;

    text-transform: uppercase;
    letter-spacing: .05em;
}

.tm-event-source-item a:hover {
    color: #f0dc9c;

    text-decoration: underline;
}


@media (max-width: 600px) {

    .tm-event-source-item {
        grid-template-columns: 1fr;
    }

    .tm-event-source-item a {
        grid-column: 1;
        grid-row: auto;

        margin-top: 5px;
    }

}
