* {
    font-family: "Roboto";
}

html {
    overflow-x: hidden;
}

html,
body,
#wrapper,
#timeline,
#content {
    margin: 0;
    padding: 0;
}

body {
    background: #fafafa;
}

a,
.link {
    cursor: pointer;
    color: #607abd;
    text-decoration: none;
}

a:hover,
.link:hover {
    text-decoration: underline;
}

#screen {
    height: calc(100vh - 53px);
    overflow: auto;
    margin-top: 53px;
    box-sizing: border-box;
}

#wrapper {
    display: flex;
}

#timeline {
    width: 64px;
    padding-top: 8px;
    box-sizing: border-box;
    background: #f5f5f5;
    border-right: 1px solid #ccc;
    user-select: none;
    position: sticky;
    left: 200px;
    flex-shrink: 0;
    z-index: 9999;
}

#content-wrapper {
    align-self: stretch;
    white-space: nowrap;
}

#content {
    height: 100%;
    overflow-y: hidden;
}

#content-drop-shadow {
    box-shadow: #ddd 3px 0px 8px;
    height: 100%;
    overflow-x: auto;
}

.column {
    height: 100%;
    display: inline-block;
    width: 200px;
    border-right: 1px solid #ccc;
    box-sizing: border-box;
    overflow-x: hidden;
    position: relative;
}

.column-track {
    padding: 4px;
    background-position-y: 8px;
    background-size: 250px 40px;
    background-image: linear-gradient(to bottom, #e0e0e0 1px, transparent 1px);
    height: 100%;
    display: inline-block;
    width: 200px;
    box-sizing: border-box;
    overflow-x: hidden;
    flex-grow: 1;
}

.column-bounding-box {
    position: relative;
    height: 100%;
    display: flex;
    flex-flow: column;
}

.column-header {
    height: 40px;
    background: #fff;
    border-bottom: 1px solid #ccc;
    font-size: 12px;
    text-align: center;
    align-items: center;
    vertical-align: middle;
    position: relative;
    z-index: 9998;
}

.column-header span {
    margin-right: 8px;
    padding-right: 8px;
    display: inline-block;
    border-right: 1px solid #ccc;
    position: relative;
    top: 50%;
    transform: translate3d(0, -50%, 0);
}

.column-header span:last-of-type {
    border-right: 0;
    padding: 0;
    margin: 0;
}

.bullet {
    box-sizing: border-box;
    border-radius: 6px;
    width: 100%;
    padding: 0.25rem 0.4rem;
    color: #fff;
    left: 4px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.column:nth-of-type(5n+0) .bullet {
    background: #7a92cf;
    border: 1px solid #5771b5;
}

.column:nth-of-type(5n+1) .bullet {
    background: #7acfc4;
    border: 1px solid #57b5a1;
}

.column:nth-of-type(5n+2) .bullet {
    background: #937acf;
    border: 1px solid #8057b5;
}

.column:nth-of-type(5n+3) .bullet {
    background: #cf7a9d;
    border: 1px solid #b5578e;
}

.column:nth-of-type(5n+4) .bullet {
    background: #db8f58;
    border: 1px solid #c77b46;
}

.cooldown-shroud {
    background: rgba(200, 200, 200, 0.3);
    border: 1px solid rgba(210, 210, 210, 1.0);
    box-sizing: border-box;
    border-radius: 6px;
    left: 4px;
    right: 4px;
    position: absolute;
    user-select: none;
    cursor: grab;
}

.cooldown-shroud .bullet:after {
    transition: opacity 0.1s;
    content: "";
    position: absolute;
    top: 0px;
    left: 0px;
    right: 0px;
    height: 100%;
    background: #000;
    border-radius: 6px;
    opacity: 0.0;
}

.column .delete-cooldown {
    position: absolute;
    top: 0;
    right: 0;
    padding: 4px 7px 3px;
    border-radius: 0px 5px 0px 5px;
    font-size: 12px;
    z-index: 3;
    display: none;
}

.cooldown-shroud:hover .delete-cooldown {
    display: inline-block;
}

.cooldown-shroud:hover .bullet:after {
    opacity: 0.07;
}

.column:nth-of-type(5n+0) .delete-cooldown {
    background: #4c6299;
}

.column:nth-of-type(5n+1) .delete-cooldown {
    background: #449488;
}

.column:nth-of-type(5n+2) .delete-cooldown {
    background: #5f4892;
}

.column:nth-of-type(5n+3) .delete-cooldown {
    background: #9c4569;
}

.column:nth-of-type(5n+4) .delete-cooldown {
    background: #af6733;
}

.bullet .name {
    font-size: 14px;
    display: block;
}

.timestamp {
    font-size: 12px;
    display: block;
    opacity: 0.75;
    user-select: none;
}

#timeline-markers .timestamp {
    display: block;
    height: 40px;
    box-sizing: border-box;
    font-size: 14px;
    color: #888;
    border-top: 1px solid #ddd;
    background: #f5f5f5;
    padding: 12px 8px;
    text-align: right;
}

#timeline-markers .timestamp.prepull {
    background: #ddd;
    border-top: 1px solid #bbb;
    color: #555;
}

#timeline-markers .timestamp.prepull+.timestamp {
    border-top: 1px solid #bbb;
}

#toolbar {
    border-bottom: 1px solid #ddd;
    background: #fff;
    box-shadow: rgba(0, 0, 0, 0.1) 0px 3px 8px;
    z-index: 99998;
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    white-space: nowrap;
}

#toolbar-items {
    background: #fff;
    z-index: 99999;
    display: flex;
}

#toolbar-items button {
    margin-right: 8px;
}

#toolbar-items .toolbar-item:last-of-type {
    border-right: 0;
}

button {
    background: #7a92cf;
    border: 1px solid #647fc4;
    color: #fff;
    padding: 8px 12px;
    border-radius: 6px;
    text-shadow: 0px 1px #5771b5;
    transition: all 0.1s;
}

button:hover {
    background: #607abd;
    border: 1px solid #3d5aa1;
    cursor: pointer;
}

button.green-btn {
    background: #53b975;
    border-color: #378b55;
    text-shadow: 0px 1px #2a7544;
}

button.green-btn:hover {
    background: #3fa200;
    border-color: #2b7c47;
}

button.red-btn {
    background: #c75f5f;
    border-color: #af4848;
}

button.red-btn:hover {
    background: #b65353;
    border-color: #8d3030;
}

.event-marker {
    position: absolute;
    display: inline-block;
    padding-left: 24px;
    white-space: nowrap;
    right: 0;
    height: 44px;
    width: 200px;
    /*
    Top should be 8 * TIMESTAMP_SECONDS - 11 pixels
    */
    top: 37px;
}

.event-marker .event-bubble {
    background: #c75f5f;
    color: #fff;
    padding: 8px;
    font-size: 12px;
    border-radius: 6px;
    white-space: nowrap;
    text-align: center;
    position: absolute;
    right: 0;
}

.event-marker .event-bubble:before {
    position: absolute;
    right: -6px;
    top: calc(50% - 2px);
    transform: translate3d(0, -50%, 0);
    width: 0;
    height: 0;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-left: 6px solid #c75f5f;
    content: "";
}

.event-marker:after {
    position: absolute;
    top: calc(50% - 2px);
    left: 100%;
    width: calc(100vw - 220px);
    height: 1px;
    background: #c75f5f;
    content: "";
    pointer-events: none;
}

.event-marker .delete-event {
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    color: #aaa;
    display: inline-block;
    left: -16px;
    opacity: 0.0;
    transition: opacity 0.1s;
    cursor: pointer;
}

.event-marker:hover .delete-event {
    opacity: 1.0;
}

.event-marker .delete-event:hover {
    color: #555;
}

input,
select {
    padding: 8px;
    display: inline-block;
    border-radius: 6px;
    border: 1px solid #bbb;
    box-sizing: border-box;
    margin-right: 8px;
    margin-left: 0px;
}

.toolbar-item {
    display: inline-block;
    padding: 8px 0px;
    padding-right: 32px;
    margin-right: 32px;
    border-right: 1px solid #ccc;
}

h4 {
    margin: 0px 0px 8px 0px;
}

#event-panel {
    width: 200px;
    min-width: 200px;
    position: sticky;
    left: 0;
    border-right: 1px solid #ccc;
    z-index: 10000;
    background: #fafafa;
}

#timeline-spacer {
    height: 41px;
}

#toolbar-title {
    width: 201px;
    text-align: center;
    box-sizing: border-box;
    padding: 16px 0px;
    flex-shrink: 0;
}

#cooldown-input {
    min-width: 300px;
}

#credits {
    padding: 16px 32px 16px 0px;
    text-align: right;
    color: #555;
    flex-grow: 1;
    font-size: 14px;
}

#credits .fa-heart {
    color: #d4497f;
}