/* Timeline Element */

.annotationTimeline .timelineElement {
    position: absolute;
    height: 100%;
    background: var(--semi-transparent-fg-color);
    pointer-events: all;
    transition: bottom 0.2s;
}

.annotationTimeline .timelineElement.active {
    background: var(--primary-fg-color);
}

.annotationTimeline .timelineElement.highlighted {
    background: var(--primary-fg-color) !important;
    z-index: 100000;
}

.annotationTimeline.editable .timelineElement {
    background-color: var(--secondary-fg-color);
}

.annotationTimeline .timelineElement.brushed {
    background: var(--semi-transparent-fg-highlight-color);
}

.annotationTimeline .timelineElement.brushed.active, .annotationTimeline.editable .timelineElement.brushed {
    background-color: var(--primary-fg-color);
}

.annotationTimeline .timelineElement.ui-draggable:hover {
    cursor: move;
}

.annotationTimeline .timelineElement.ui-resizable .ui-resizable-handle {
    position: absolute;
    top: -2px;
    width: 3px;
    height: 100%;
    background-color: var(--primary-fg-color);
    border: 2px solid #000;
    border-radius: 3px;
    touch-action: none;
}

.annotationTimeline .timelineElement.ui-resizable .ui-resizable-handle:hover {
    background-color: var(--primary-fg-color);
}

.annotationTimeline .timelineElement.ui-resizable .ui-resizable-handle.ui-resizable-e {
    right: -2px;
    cursor: ew-resize;
}

.annotationTimeline .timelineElement.ui-resizable .ui-resizable-handle.ui-resizable-w {
    left: -2px;
    cursor: ew-resize;
}

@media (pointer: coarse) {
    .annotationTimeline .timelineElement.ui-resizable .ui-resizable-handle {
        width: 12px;
    }
    .annotationTimeline .timelineElement.ui-resizable .ui-resizable-handle.ui-resizable-e {
        right: -6px;
    }
    .annotationTimeline .timelineElement.ui-resizable .ui-resizable-handle.ui-resizable-w {
        left: -6px;
    }
}

/* Compare Timeline Element */

.timelinesContainer {
    height: 100%;
}

.timelineList {
    position: relative;
    width: 100%;
    height: 100%;
    left: 0px;
    display: flex;
    flex-direction: column;
}

.timelineList[data-zoom-level="1"] {
    cursor: default !important;
}

.timelineList.ui-draggable {
    cursor: ew-resize;
}

.timelineList .zoomControlsWrapper {
    flex: 0 0 auto;
    width: 100%;
    background: var(--secondary-bg-color);
    padding: 4px 8px;
    box-sizing: border-box;
    z-index: 6;
    cursor: default;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.timelineList .zoomControlsWrapper .timelineZoomControls {
    display: flex;
    gap: 4px;
}

.timelineList .zoomControlsWrapper .timelineZoomPreset {
    padding: 3px 10px;
    font-size: 11px;
    min-width: 40px;
    text-align: center;
    color: #acacb3;
}

.timelineList .zoomControlsWrapper .timelineZoomPreset.active {
    color: var(--primary-fg-color);
}

.timelineList .timelineZoomWrapper {
    position: relative;
    margin: 0;
    overflow: auto;
    width: 100%;
    flex: 1 1 0;
    min-height: 0;
    box-shadow: 0 0 2px 1px rgba(50,50,50,.6) inset;
}

.timelineList[data-zoom-level="1"] .timelineZoomWrapper {
    box-shadow: 0 0 1px 1px rgba(50,50,50,.3) inset;
    overflow-x: hidden;
    overflow-y: auto;
}

.timelineList .timelineZoomWrapper .timelineZoomScroller {
    position: relative;
}

.timelineList .timelineZoomScroller > .timelinePlayhead {
    position: absolute;
    top: 0;
    width: 2px;
    height: 100%;
    background-color: var(--primary-fg-color);
    z-index: 10;
    pointer-events: none;
    opacity: 0.8;
}

.timelineList .userTimelineWrapper .exportTimelineDataButton {
    margin-left: 10px;
    text-decoration: none;
    padding: 1px 4px;
    border: 1px solid;
    border-radius: 4px;
    color: inherit;
    font-size: 12px;
    line-height: 16px;
    display: none;
}

.timelineList .userTimelineWrapper:hover .exportTimelineDataButton {
    display: inline-block;
}

.timelineList .userTimelineWrapper .exportTimelineDataButton:hover {
    background: #fff;
}

.timelineList .timelineProgressWrapper {
    height: 100%;
    width: 100%;
    margin: 0;
    position: absolute;
    z-index: 0;
    left: 0px;
}

.timelineList .timelineProgressWrapper .timelineProgressRange {
    position: absolute;
    top: 0px;
    left: 0px;
    height: 100%;
    background: rgba(150, 150, 150, 0.4);
    width: 0%;
    border-right: 2px solid var(--primary-fg-color);
    opacity: .4;
}

.timelineList .userTimelineWrapper {
    position: relative;
    z-index: 2;
    margin-top: 4px;
    padding-bottom: 40px;
    clear: both;
}

.timelineList .userTimelineWrapper:hover {
}

.timelineList .userTimelineWrapper.sortable-chosen {
    background: var(--primary-bg-color);
    box-shadow: 0 0 4px 1px rgba(100,100,100,.3)
}

.timelineList .userTimelineWrapper {
    cursor: move;
}

.timelineList .sortable-placeholder {
    background: rgba(200,200,200,.3);
    border: 2px dotted #333;
    height: 40px;
    margin: 6px 0;
}

/* targets first userTimelineWrapper */
.timelineList .timelineZoomScroller > .userTimelineWrapper:first-child {
    padding-top: 30px;
}

.timelineList .userTimelineWrapper:last-child {
    padding-bottom: 40px;
}

.timelineList .userLabel {
    display: inline-block;
    position: relative;
    margin-left: 5px;
    left: 0px;
    font-weight: 300;
    margin-bottom: 2px;
    line-height: initial;
}

.timelineList .userTimeline {
    position: absolute;
    left: 0px;
    width: 100%;
    height: 20px;
    background-color: #b5b5bc;
    box-shadow: 0 0 2px 0px #303030 inset;
    background-image: repeating-linear-gradient(90deg, rgba(255,255,255,0.3) -1px, rgba(255,255,255,0.3) 1px, transparent 1px, transparent 3px);
}

.timelineList .userTimeline .overlapIndicatorLeft,
.timelineList .userTimeline .overlapIndicatorRight {
    position: absolute;
    left: -3px;
    top: 50%;
    color: var(--primary-bg-color);
    margin-top: -8px;
    pointer-events: none;
    text-shadow: 0 0 1px #000;
    z-index: 10000000;
}
.timelineList .userTimeline .overlapIndicatorRight {
    left: auto;
    right: -3px;
}

.timelineList .userTimeline .compareTimelineElement {
    position: absolute;
    height: 100%;
    background: #888;
    opacity: .6;
    border-left: 1px solid rgba(255,255,255,.5);
    border-right: 1px solid rgba(255,255,255,.5);
}

.timelineList .userTimeline .compareTimelineElement[data-origin-type="ao:EvolvingValuesAnnotationType"],
.timelineList .userTimeline .compareTimelineElement[data-origin-type="ao:ContrastingValuesAnnotationType"] {
    background: transparent;
}

.timelineList .userTimeline .compareTimelineElement .barchartFraction {
    position: absolute;
    width: 100%;
    bottom: 0px;
}

.timelineList .userTimeline .compareTimelineElement .graphDataContainer {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
}

.timelineList .userTimeline .compareTimelineElement .graphDataContainer canvas {
    width: 100%;
    height: 100%;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
}

/* Timeline Element Preview */

.compareTimelineElement .previewWrapper, 
.timelineElement .previewWrapper, 
body > .compareTimelineElement .previewWrapper,
body > .timelineElement .previewWrapper {
    background: none repeat scroll 0 0 var(--primary-bg-color);
    border: 2px solid var(--primary-bg-color);
    box-shadow: 0 0 1px 1px var(--primary-fg-color);
    height: 60px;
    left: 50%;
    margin-left: -40px;
    position: absolute;
    top: -66px;
    width: 80px;
    z-index: 2;
    box-sizing: border-box;
    display: none;
}

.compareTimelineElement.overlapLeft .previewWrapper, 
.timelineElement.overlapLeft .previewWrapper, 
body > .compareTimelineElement.overlapLeft .previewWrapper,
body > .timelineElement.overlapLeft .previewWrapper {
    left: auto;
    right: 0%;
    margin-left: -60px !important;
}

.compareTimelineElement.overlapRight .previewWrapper, 
.timelineElement.overlapRight .previewWrapper, 
body > .compareTimelineElement.overlapRight .previewWrapper,
body > .timelineElement.overlapRight .previewWrapper {
    left: 0px;
    margin-left: 0px !important;
}

.compareTimelineElement.previewPositionLeft .previewWrapper, 
.timelineElement.previewPositionLeft .previewWrapper, 
body > .compareTimelineElement.previewPositionLeft .previewWrapper,
body > .timelineElement.previewPositionLeft .previewWrapper {
    left: 0%;
    margin-left: 0px !important;
}

.compareTimelineElement.previewPositionRight .previewWrapper, 
.timelineElement.previewPositionRight .previewWrapper, 
body > .compareTimelineElement.previewPositionRight .previewWrapper,
body > .timelineElement.previewPositionRight .previewWrapper {
    left: 0%;
    margin-left: -60px !important;
}

.compareTimelineElement:hover .previewWrapper,
.timelineElement:hover .previewWrapper {
    display: block;
}


.compareTimelineElement .previewWrapper:after, 
.timelineElement .previewWrapper:after, 
body > .compareTimelineElement .previewWrapper:after,
body > .timelineElement .previewWrapper:after {
    position: absolute;
    bottom: -8px;
    left: 50%;
    margin-left: -12px;
    border-top: 8px solid var(--primary-bg-color);
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    content: '';
    font-weight: 300;
}

.compareTimelineElement.previewPositionLeft .previewWrapper:after, 
.timelineElement.previewPositionLeft .previewWrapper:after, 
body > .compareTimelineElement.previewPositionLeft .previewWrapper:after,
body > .timelineElement.previewPositionLeft .previewWrapper:after {
    left: 15px;
}

.compareTimelineElement.previewPositionRight .previewWrapper:after, 
.timelineElement.previewPositionRight .previewWrapper:after, 
body > .compareTimelineElement.previewPositionRight .previewWrapper:after,
body > .timelineElement.previewPositionRight .previewWrapper:after {
    left: 62px;
}

.compareTimelineElement .previewWrapper:before, 
.timelineElement .previewWrapper:before, 
body > .compareTimelineElement .previewWrapper:before,
body > .timelineElement .previewWrapper:before {
    position: absolute;
    bottom: -9px;
    left: 50%;
    margin-left: -12px;
    border-top: 8px solid var(--primary-fg-color);
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    content: '';
}

.compareTimelineElement .previewWrapper .resourceThumb, 
.timelineElement .previewWrapper .resourceThumb, 
body > .compareTimelineElement .previewWrapper .resourceThumb,
body > .timelineElement .previewWrapper .resourceThumb {
    position: relative;
    width: 100% !important;
    height: 100% !important;
    cursor: pointer;
    background-color: var(--primary-bg-color);
    background-size: 130% auto;
    background-repeat: no-repeat;
    background-position: top center;
    text-align: center;
    margin: 0px !important;
    font-size: 11px;
    text-align: left;
    border-radius: 0;
}

.compareTimelineElement .previewWrapper .resourceThumb .resourceTitle, 
.timelineElement .previewWrapper .resourceThumb .resourceTitle, 
body > .compareTimelineElement .previewWrapper .resourceThumb .resourceTitle,
body > .timelineElement .previewWrapper .resourceThumb .resourceTitle {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    font-size: 11px;
    padding: 0 3px 3px 3px;
    color: var(--primary-fg-color);
    box-sizing: border-box;
}

.compareTimelineElement .previewWrapper .resourceThumb[data-type="text"] .resourceTitle,
.timelineElement .previewWrapper .resourceThumb[data-type="text"] .resourceTitle,
body > .compareTimelineElement .previewWrapper .resourceThumb[data-type="text"] .resourceTitle,
body > .timelineElement .previewWrapper .resourceThumb[data-type="text"] .resourceTitle,
.compareTimelineElement .previewWrapper .resourceThumb[data-type="html"] .resourceTitle,
.timelineElement .previewWrapper .resourceThumb[data-type="html"] .resourceTitle,
body > .compareTimelineElement .previewWrapper .resourceThumb[data-type="html"] .resourceTitle,
body > .timelineElement .previewWrapper .resourceThumb[data-type="html"] .resourceTitle {
    display: none;
}

.compareTimelineElement .previewWrapper .resourceThumb .resourceOverlay .resourceIcon, 
.timelineElement .previewWrapper .resourceThumb .resourceOverlay .resourceIcon, 
body > .compareTimelineElement .previewWrapper .resourceThumb .resourceOverlay .resourceIcon,
body > .timelineElement .previewWrapper .resourceThumb .resourceOverlay .resourceIcon {
    position: absolute;
    right: 6px;
    bottom: 5px;
    width: 25px;
    height: auto;
}

.compareTimelineElement .previewWrapper .resourcePreviewButton,
.timelineElement .previewWrapper .resourcePreviewButton {
    width: 22px;
    height: 22px;
}

.compareTimelineElement .previewWrapper .resourcePreviewButton [class^="icon-"]::before, 
.compareTimelineElement .previewWrapper .resourcePreviewButton [class*=" icon-"]::before,
.timelineElement .previewWrapper .resourcePreviewButton [class^="icon-"]::before, 
.timelineElement .previewWrapper .resourcePreviewButton [class*=" icon-"]::before {
    font-size: 15px;
    line-height: 22px;
}

.compareTimelineElement .previewWrapper .resourceThumb[data-type="text"] .resourceTextPreview,
.timelineElement .previewWrapper .resourceThumb[data-type="text"] .resourceTextPreview,
.compareTimelineElement .previewWrapper .resourceThumb[data-type="html"] .resourceTextPreview,
.timelineElement .previewWrapper .resourceThumb[data-type="html"] .resourceTextPreview {
    padding: 2px 4px;
    font-size: 8px;
    font-family: monospace;
    overflow: hidden;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    word-wrap: break-word;
}

.compareTimelineElement .compareTimelineElementTime {
    position: absolute;
    bottom: -4px;
    left: 0px;
    width: 100%;
    display: none;
}

.compareTimelineElement .compareTimelineElementTime .compareTimeStart,
.compareTimelineElement .compareTimelineElementTime .compareTimeEnd {
    position: absolute;
    top: 0px;
    left: calc(100%);
    font-size: 11px;
    width: 42px;
    text-align: left;
    overflow: hidden;
    color: var(--primary-bg-color);
}

.contentViewContents .compareTimelineElement .compareTimelineElementTime .compareTimeStart,
.contentViewContents .compareTimelineElement .compareTimelineElementTime .compareTimeEnd {
    color: var(--primary-fg-color);
}

.compareTimelineElement .compareTimelineElementTime .compareTimeStart {
    left: auto;
    right: calc(100% + 2px);
    text-align: right;
}

.compareTimelineElement:hover .compareTimelineElementTime, .compareTimelineElement.active .compareTimelineElementTime {
    display: block;
}

.timelineElement:hover, .compareTimelineElement:hover, .compareTimelineElement.active {
    opacity: 1 !important;
    z-index: 101;
    cursor: move;
}