@import 'colors'; $timeslot-height: 0.65em; .schedule { display: flex; overflow-x: auto; .schedule-date { height: 0; position: relative; top: calc(-3rem - 1px); visibility: hidden; width: 0; } .schedule-event { border: 1px solid $color-highlight; border-radius: 0.5em; color: currentColor; display: flex; grid-row: calc(var(--start) + 1) / calc(var(--end) + 1); overflow: hidden; text-decoration: none; &:hover .schedule-event-detail { text-decoration: underline; } & > div { padding: 0.5em; } } .schedule-event-detail { border-left: 1px solid $color-highlight; overflow: hidden; .schedule-speaker, .schedule-title { overflow-x: hidden; text-overflow: ellipsis; white-space: nowrap; } } .schedule-event-time { display: flex; flex-direction: column; :nth-child(2) { line-height: 1.1; } } .schedule-grid { display: grid; grid-auto-rows: $timeslot-height; grid-template-rows: auto; &.schedule-room { grid-template-columns: 400px; } & > * { grid-column: 1 / 2; } } .schedule-room { margin: 0 0.5em; & > .schedule-title { text-align: center; } } .schedule-time { border-top: 1px solid $color-highlight; grid-row: calc(var(--start) + 1) / span var(--span); } .schedule-timeline { background: $color-background; padding-right: 0.5em; position: sticky; left: 0; } } .schedule-days { background: $color-background; display: flex; font-size: 1rem; line-height: 1; overflow-x: auto; padding: 1em 0; position: sticky; top: 0; z-index: 42; a { padding: 0 0.5em; white-space: nowrap; &:first-child { padding-left: 0; } &:last-child { padding-right: 0; } } } .schedule-info { .schedule-timezone { font-weight: bold; } .schedule-version { font-style: italic; } }