Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
galaxyproject
GitHub Repository: galaxyproject/training-material
Path: blob/main/assets/css/main.scss
2594 views
---
---

@import "./fontsmain.scss";

$font-size: 15px;
$tutorial-box-spacing: 1rem;


:root {
	--color-background: #fff;
	--text-color: #292b2c;
	--text-color-muted: #555; // AA :(
        --text-color-inverted: #eee;
	 // Allow overriding this separately, should generally default to same
	 // as textcolour because box titles are still light in every theme.
	--text-color-boxtitle: var(--text-color);
	--slide-heading-color: var(--text-color); // Slides

	--code-foreground: #fff;
	--code-background: #000;

	--border-light: #ddd;
	--hyperlink: #0056b3;
	--hyperlink-hover: #004590;

	// From Galaxy
	--brand-color: #2c3143;
	--brand-color-contrast: #fff;
	--navbar-border-size: 1px;
	--navbar-border-color: transparent;
	--navbar-item-background: transparent;
	--navbar-item-hover: transparent;

	// Basically only for the breadcrumbs.
	--secondary-color: #f2d57c;
	--secondary-color-text: #000;

	// A11y
	--outline-color: red;

	--h1-theme-before: "";
	--h1-theme-after: "";
	--h2-theme-before: "";
	--h2-theme-after: "";

	--border: #888;

	--color-disabled: #ccc;

	// Boxes
	--overview-color: #8A9AD0;
	--agenda-color: #86D486;
	--keypoints-color: #FFA1A1;
	--tip-color: #FFE19E;
	--warning-color: #de8875;
	--comment-color: #ffecc1;
	--handson-color: #dfe5f9;
	--question-color: #8A9AD0;
	--solution-color: #B8C3EA;
	--details-color: #ddd;
	--feedback-color: #86D486;
	--code-color: #86D486;
	--code-out-color: #fb99d0;

    // Rainbow buttons for stats and GTA
    //--rainbow-red: #f2002b;
    --rainbow-orangered: #f64021;
    --rainbow-orange: #f98016;
    --rainbow-orangeyellow: #fcc00b;
    //--rainbow-yellow: #ffff00;
    --rainbow-green: #00cc66;
    --rainbow-blue: #6381dd;
    --rainbow-purple: #a74ee1;
    --rainbow-violet: #f04ac5;
    --rainbow-pink: #e8aed6;


}

body[data-brightness="light"][data-light_theme="yellow"] {
	--color-background: #ffe;
	--text-color: #111;
}

body[data-brightness="dark"] {
	--color-background: #000;
	--color-foreground: #fff;
	--text-color: #fff;
	--text-color-muted: #aaa;
	--border: #aaa;
	--hyperlink-hover: #fff;
	--hyperlink: #7bf;
	--slide-heading-color: #eee;

	--secondary-color: #222;
	--secondary-color-text: var(--text-color);

}

// Add a white background to transparent gif as it was causing a visualization issue
body[data-brightness="dark"] img[src$=".gif"] {
	background-color: #fff;
}

body[data-brightness="dark"][data-dark_theme="night"] {
	--color-background: #444;
	--color-disabled: #222;
	--text-color: #ccc;
}

body[data-brightness="dark"][data-dark_theme="midnight"] {
	--color-disabled: #222;
}

// High Contrast
body[data-contrast="high"] {
	--border: #000;
	--text-color-muted: var(--text-color) !important;
	--navbar-border-color: var(--text-color);
}
body[data-contrast="high"][data-brightness="dark"]  {
	--border: #fff;
}

// Low Contrast
body[data-contrast="low"] {
	--border: #ddd;
}

body[data-contrast="low"][data-brightness="dark"]  {
	--border: #333;
}

body[data-font_main="comic-sans"] {
	font-family: "Comic Sans MS", cursive, sans-serif;
}

body[data-font_main="open-dyslexic"] {
	font-family: "OpenDyslexic", "Open Dyslexic", serif;
}

body[data-font_code="comic-sans"] {
	pre, code {
		font-family: "Comic Mono", monospace;
	}
}

// All of our themes
@import "./themes.scss";

select {
	// .form-control is more specific than select
	border: 1px solid var(--border) !important;
	background: var(--color-background) !important;
	color: var(--text-color) !important;

	&:disabled {
		background: var(--color-disabled) !important;
		color: var(--text-color-muted) !important;
	}
}

hr {
	border-top: var(--navbar-border-size) solid var(--border) !important;
}

.table thead th {
  border-top: 2px solid var(--border) !important;
  border-bottom: 2px solid var(--border) !important;
}
.table td, .table th {
  border-top: 1px solid var(--border) !important;
}


/* SLIDES */
@import "./slides.scss";
/* SYNTAX */
@import "./syntax_highlighting.scss";

/* Other CSS libraries we use */
// If you use .css (i.e. from the file extension) it will use a CSS import
// which triggers multiple requests.
@import "./academicons";
@import "./bootstrap.min";
@import "./bootstrap-toc.min";
@import "./leaflet-1.9.3";
@import "../fontawesome/css/all.min";
@import "./[email protected]";


// palette
// Boxes

.color-overview { background: var(--overview-color); }
.color-agenda { background: var(--agenda-color); }
.color-keypoints { background: var(--keypoints-color); }
.color-tip { background: var(--tip-color); }
.color-warning { background: var(--warning-color); }
.color-comment { background: var(--comment-color); }
.color-handson { background: var(--handson-color); }
.color-question { background: var(--question-color); }
.color-solution { background: var(--solution-color); }
.color-details { background: var(--details-color); }
.color-feedback { background: var(--feedback-color); }
.color-code { background: var(--code-color); }
.color-code-out { background: var(--code-out-color); }

//.color-rainbow-red { background: var(--rainbow-red); color: black; }
.color-rainbow-orangered { background: var(--rainbow-orangered); color: black; }
.color-rainbow-orange { background: var(--rainbow-orange); color: black; }
.color-rainbow-orangeyellow { background: var(--rainbow-orangeyellow); color: black; }
//.color-rainbow-yellow { background: var(--rainbow-yellow); color: black }
.color-rainbow-green { background: var(--rainbow-green); color: black; }
.color-rainbow-blue { background: var(--rainbow-blue); color: black; }
.color-rainbow-purple { background: var(--rainbow-purple); color: black; }
.color-rainbow-violet { background: var(--rainbow-violet); color: black; }
.color-rainbow-pink { background: var(--rainbow-pink); color:black;}


body {
	font-family: "Atkinson Hyperlegible",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;

	background: var(--color-background);
	color: var(--text-color);

	h1::before { content: var(--h1-theme-before) };
	h1::after { content: var(--h1-theme-after) };
	h2::before { content: var(--h2-theme-before) };
	h2::after { content: var(--h2-theme-after) };

	font-size: $font-size;
	word-wrap: break-word;
	position: relative;
}

@mixin tutorial-box ($bg-color) {
    margin-top: 4 * $tutorial-box-spacing;

    // Legacy
    padding: ($tutorial-box-spacing - 0.4rem) ($tutorial-box-spacing - 0.11rem) $tutorial-box-spacing;
    border: 1px solid $bg-color;
    box-shadow: 3px 3px $bg-color;

    // The new replacement
    & > h3:not(.nobox),
    > .box-title {
        font-size: $font-size + 3;
        margin-inline-start: -$tutorial-box-spacing;
        margin-inline-end: -$tutorial-box-spacing;
        margin-top: -3.30rem;
        padding-top: calc($tutorial-box-spacing / 2);
        padding-bottom: calc($tutorial-box-spacing / 2);
        padding-inline-start: $tutorial-box-spacing;
        padding-inline-end: $tutorial-box-spacing;
        background-color: $bg-color;
        color: var(--text-color-boxtitle);
        vertical-align: 1em;
        float: inline-start;
        border: 1px solid $bg-color;
        border-top-left-radius: 8px;
        border-top-right-radius: 8px;

        .fa {
            padding-right: calc($tutorial-box-spacing / 5);
        }

        button {
            background: transparent;
            border: none;
            cursor: pointer;
        }
    }
}

@mixin matrix-table (){
  table {
      width:unset;
      margin-left:auto;
      margin-right:auto;
      margin-top: 20pt;
  }

  table thead th {
      border-bottom: 2px solid #777;
      text-align: left;
  }

  table td:first-child, table th:first-child  {
      border-right: 2px solid #777;
      font-weight: bold;
      text-align: left;
  }

  table td:not(first-child), table th:not(first-child) {
      text-align: center;
      border-right: 1px solid #ddd;
      border-left: 1px solid #ddd;
  }
}



// When boxes are collapsed, they add or remove this class
// However when someone wants to print the GTN document, we should make all
// boxes visible, no matter what their collapse state.
@media screen {
	.box-collapsed {
		display: none !important; // important Overrides specifically one case of a learning pathway FAQ where we use some custom display already to get objects floating correctly in the snippet.
	}
}

// When someone is printing this
@media print {
	// Used for hiding the TOC on tutorials
	.hide-when-printing {
		display: none;
	}

	// Don't break over a page boundary if possible
	h2,h3,h4,h5,h6,h7,h8 {break-after: avoid-page;}
	img, svg, table, canvas {break-inside: avoid;}

	// Fun fact: paper is not clickable.
	// This is mostly applicable for folks printing tutorials which they
	// probably shouldn't be doing anyway but just in case.
	section#tutorial-content {
		a::after {content: " (" attr(href) ")";}

		blockquote.agenda {
			a::after {content: unset;}
		}
	}

	// Save ink.
	pre.highlight {
		background: none !important;
		color: var(--text-color) !important;

		.na { color: #32440d !important; }
		.sb, .sc, .sd, .s2, .sh, .si, .sx, .sr, .s1, .ss, .s, .sa, .dl {
			color: #664 !important;
		}
		.c, .ch, .cd, .cpf, .cm, .c1 {
			color: #333 !important;
		}
		.gh, .go,
		.nb, .ni, .nn, .vc, .vg, .vi, .nv, .vm, .w, .bp,
		.kn, .ow, .o, .nt {
			color: #222 !important;
		}
		.gp {
			color: #378 !important;
		}
	}

}


div#theme-selector,div#lang-selector,div#archive-selector {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	width: 200px;
	justify-content: flex-start;
	margin-inline-start: 1em;

	label.btn,a.btn,button.btn {
		margin: 0.1em;
		border: 1px solid var(--theme-color);
	}
}


@mixin input-nicer($color) {
}

h1, h2, h3, h4 {
    margin-top: 2rem;
}

img {
    max-width: 95%;
    margin: 2.5%;
}

ol.toots {
	li.toot {
		display: flex;
		flex-direction: column;
	}
	img {
		width: 46px !important;
		height: 46px !important;
	}
	a.user.boost img {
		width: 23px !important;
		height: 23px !important;
	}
}

div.main-content {
	img {
		height: auto;
		width: auto;
	}
}

figure {
  text-align: center;
  margin: 2rem;
  border: thin silver solid;
  padding: 1rem;
  display: flex;
  flex-direction: column;


  & > img {
      margin-bottom: 1rem;
      height: auto;
  }

  & > iframe {
      margin: auto;
  }

  figcaption {
    text-align: justify;
  }
}

@media (max-width:992px) {
  figure {
  margin: 1rem;
 }
}

:not(pre) > code {
    color: var(--code-foreground);
    background: var(--code-background);
    border: 1px solid var(--text-color-muted);
    border-radius: 0.25rem;
}

pre.highlight {
    padding: 1rem;
    background-color: var(--code-background);
    color: var(--code-foreground);
    border: 1px solid var(--text-color-muted);
    @include syntax-dark;

	code > ::selection {
		color: var(--code-background);
		background: var(--code-foreground);
	}
}

/* Make the @@ portions of diffs, which indicate area, much more visible */
div.language-diff .p {
	border-top: 1px solid #66d9ef;
	border-bottom: 1px solid #66d9ef;

	border-left: 5px solid #66d9ef;
	border-right: 5px solid #66d9ef;

	font-weight: 900;

	line-height: 3em;

	margin-right: 1em;
	padding-left: 1em;
	padding-right: 1em;
}

body > footer {
    margin-top: 5em;
}

footer {
    color: var(--text-color-muted);
    font-size: $font-size - 2;
}

.follow-up {
    p {
        font-size: 18px;
    }
}

nav.navbar {
    background-color: var(--brand-color) !important;
    color: var(--brand-color-contrast);
    border-bottom-style: solid;
    border-bottom-width: var(--navbar-border-size);
    border-bottom-color: var(--navbar-border-color);
    padding: 0;

    &.navbar-dark .navbar-brand,
    &.navbar-dark .navbar-nav .nav-link{
        color: var(--brand-color-contrast);
    }

    a {
	border: none;
    }

    .navbar-brand, .navbar-nav li {
	padding: 0.5em;
	background: var(--navbar-item-background);

	&:hover {
		background: var(--navbar-item-hover);
	}
    }

    a.navbar-brand {
	padding-right: 2.5em; // the image seems to work poorly with parent size calculations.
    }

    // Text decoration not necessary for accessibility here.
    a {
        text-decoration: none;
    }

    .navbar-collapse {
        justify-content: flex-end;
        align-items: flex-end;
        min-width: 0;
    }

}


input.nicer {
	background: transparent;
	border: none;
	border-radius: 0px;
	padding: 0.4em 0 0 0;
	color: var(--text-color);
	border-bottom: 2px solid var(--text-color);
	&::placeholder {
		color: var(--text-color-muted);
	}

	&:focus, &:active {
		background: #fff2;
		text-decoration: underline;
	}
}

nav input.nicer {
	color: var(--brand-color-contrast);
	border-bottom: 2px solid var(--brand-color-contrast);
	&::placeholder {
		color: var(--brand-color-contrast);
	}

	&:focus, &:active {
		color: var(--brand-color-contrast);
		border-bottom: 2px solid var(--brand-color-contrast);
	}
}
#search-input {
	margin-right:1em;
}

/*
#search-container input.nicer {
	@include input-nicer(black);
}
*/


.main-content {
    padding-top: 1rem;
}

.table {
    td {
        vertical-align: middle;
    }

    .fa {
        font-size: $font-size + 5;
    }

}

.training-network-map {
    width: 90%;
    margin: 0 auto;
}

.faqs{
  h4.faq-area{
    color: var(--text-color-muted);
    i {
     font-size: 0.5em;
    }
  }
  h3{
   a{
     color: var(--text-color);
    }
  }
}

.tutorial {
    & > h1:first-child {
        margin-bottom: 1rem;
    }

    table:not(.contributions) {
        display: block;
        width: 100%;
        overflow-x: auto;
        max-width: 100%;
        margin-bottom: 1rem;

        th,
        td {
            padding: .75rem;
            vertical-align: top;
            border-top: 1px solid #eceeef;
        }

        thead th {
            vertical-align: bottom;
            border-bottom: 2px solid #eceeef;
        }
    }

	div.container blockquote {
		ul, p, li > p:last-child {
			margin-bottom: 0.5rem;
		}
		p:last-child {
			margin-bottom: 0;
		}
	}

    .google-form {
        width: 100%;
        height: 1100px;
        border: 0;
    }
}

// tutorial boxes
blockquote {
    ul,
    ol,
    & > blockquote,
    li p {
        margin-bottom: 0px;
    }
    img {
        display: block;
    }

    &.agenda {
        @include tutorial-box(var(--agenda-color));
    }

    &.tip {
        @include tutorial-box(var(--tip-color));
    }

    &.question {
        @include tutorial-box(var(--question-color));
    }

    &.code-in {
        @include tutorial-box(var(--code-color));
    }

    &.code-out {
        @include tutorial-box(var(--code-out-color));
    }

    &.code-max-300 {
        pre {
            max-height: 300px
        }
    }

    &.solution {
        @include tutorial-box(var(--solution-color));
    }

    &.comment {
        @include tutorial-box(var(--comment-color));
    }

    &.hands_on, &.hands-on {
        @include tutorial-box(var(--handson-color));
    }

    &.key_points {
        @include tutorial-box(var(--keypoints-color));
    }

    &.overview {
        @include tutorial-box(var(--overview-color));
        margin-top: 5rem;
    }

    &.warning {
        @include tutorial-box(var(--warning-color));
    }

    &.details {
        @include tutorial-box(var(--details-color));
    }

    &.quote {
        border-inline-start: 5px solid var(--brand-color);
        padding-inline-start: 1em;
    }

    &.spoken {
        display: none;
    }

    &.hidden {
        display: none;
    }

    &.matrix {
        @include matrix-table();
    }

    &.feedback{
        @include tutorial-box(var(--feedback-color));
    }
}

.fold-unfold {
    margin-inline-start: $tutorial-box-spacing;
}
.pre-break-lines code {
    white-space: pre-wrap;
}

.card{
	background: transparent;
	border: 1px solid var(--border-light);
	.card-title {
		color: var(--brand-color-contrast);

		// margin-left: -15px; // BS has a 15px margin on cards, this makes the card title fill the card.
		// margin-right: -15px;
	}

}

.card.setup-card {
  .card-title{
    color: var(--text-color);
  }
}

.card:not(.setup-card){
	.card-title {
		background: var(--brand-color);
		padding: 1.25rem;
	}

	.card-body {
		padding: 0em;
		flex: 0 1 auto; // Override BS for the workflow listing.

		// We stripped the padding from the card body in the above line
		// Thus we need to add it back via margins to each element.
		// We have to manually exclude the card titles
		// And also canvases because they apparently calculate their area before the CSS has finished.
		& > :not(.card-title,canvas){
			margin-left: 1em;
			margin-right: 1em;
		}
	}
}

.pathwaylist{
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: space-around;
    margin-bottom: 2rem;

    .pathwayitem {
      background: transparent;

      .card{
        margin-bottom: 1em;
      }
      .card-body{
        height: 17rem;
        overflow: hidden;
      }
      .card-text{
        margin: 1rem;
        vertical-align: center;
      }
      .card-title{
        height: 6rem;
      }
      .card-header {
	    background: var(--brand-color);
	    border-bottom: 1px solid var(--border-light);
      }
    }
    .pathwaycover {
        width: 100%;
        max-height: 100%;
        object-fit: contain;
        margin-top: 1em;
        background-color: white;
        border-radius: 2rem;;
        padding: 1rem;
        -webkit-transition: border 0.2s ease-in-out;
        -o-transition: border 0.2s ease-in-out;
        transition: border 0.2s ease-in-out;
    }
    h3 {
        margin-top: 0.25rem;
    }

}

.newslist {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: space-around;
    margin-bottom: 2rem;

    .newsitem {
      width: 100%;
      background: transparent;
      border: 1px solid var(--border-light);
      .card-header {
	background: var(--brand-color);
	border-bottom: 1px solid var(--border-light);
      }
    }
    .newscover {
        width: 100%;
        object-fit: cover;
        margin-top: auto;
        margin-bottom: auto;
        background-color: white;
        border-radius: 2rem;;
        padding: 1rem;
        -webkit-transition: border 0.2s ease-in-out;
        -o-transition: border 0.2s ease-in-out;
        transition: border 0.2s ease-in-out;
    }
    h3 {
        margin-top: 1rem;
    }
}


.newstable{
	div {
		margin-top: 0px;
		color: var(--text-color) !important;
		font-weight: bold;
		background: transparent;

		a {
			background: transparent;
			border: 1px solid var(--border-light);
		}
		a:hover {
			border: 1px solid var(--hyperlink);
		}
	}
	p {
		margin: 0px;
	}
}

.contributors {
    padding: 0;

    .carousel-item {
        align-items: flex-start;
        flex-wrap: wrap;
        flex-direction: row;
        justify-content: space-around;
    }

    .carousel-item.active,
    .carousel-item-next,
    .carousel-item-prev {
        display: flex;
    }

    .hall-of-fame-hero {
        margin: 0;
        width: 18%;

        .name {
            font-size: 0.7em;
        }
    }
}

#feedback-button {
	width: 100%;
	cursor: pointer;
	border: 5px solid transparent;

	&:hover {
		border: 5px solid var(--hyperlink);
	}

	img {
		margin: 0;
		max-width: 100%;
		width: 100%;
	}
}

.hall-of-fame {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: space-around;
}

.contributor-page {
	img.avatar {
		background-color: white;
		border-radius: 20px;
		// border: 1px solid var(--border-light);
		// padding: 5px;
		width: 100%;
	}
}
.hall-of-fame-hero {
    width: 140px;
    margin: 1rem;
    text-align: center;

    .name {
        margin-top: 0.5rem;
    }

    .contact-items {
        margin-top: 0.2rem;
    }

    .thumbnail {
        display:inline-block;

        img {
            background-color: white;
            border-radius: 20px;
            border: 1px solid var(--border-light);
            padding: 5px;
            width: 100%;
        }
    }

    a.thumbnail {
        &:hover,
        &:focus,
        &:active {
            img {
                border-color: var(--brand-color);
            }
        }
    }
}

// This is a fix to get the hamburger button (menu/navbar) correctly placed on
// small screens.
@media (max-width: 575px) {
    .navbar > .container {
        position: initial;
        margin-left: initial;
        margin-right: initial;
    }
}

// This applies a "dark" style to the dropdown menus on small devices since
// Bootstrap v4 does not do that by default.

.dropdown-menu {
	background-color: var(--color-background);
	border-color: var(--border);
}
.dropdown-item {
	color: var(--text-color);

	&:hover, &:focus, &:active {
		background-color: var(--brand-color);
		color:  var(--text-color);
	}
}

.dropdown-divider {
	border-top-color: var(--border);
}

@media (max-width: 768px) {
    .navbar {
        .dropdown-menu {
            border-color: transparent;
        }

        .nav-item,
        .dropdown-item {
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;
        }
    }
}

@media (min-width: 768px) {
    .tutorial table,
    .table-responsive {
        display: table;
    }

    .citation {
        text-align: justify;
    }
}

@media (max-width: 1200px) {
    .navbar-nav i {
        display: none;
    }
}

:root {
	--color-primary: #999;
	--color-darker: #777;
	--color-dimmed: #555;
}

.label {
    display: inline;
    padding: .2em .6em .3em;
    font-size: 75%;
    line-height: 1;
    color: #000;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: .25em;
    border-style: solid;
    border-width: 0 2px 1px 0;
    background-color: var(--color-primary);
    border-color: var(--color-darker);

    &:hover {
        color: #000;
        background-color: var(--color-dimmed);
    }

    &.label-large {
	    font-size: 150%;
    }
}

.level {
    color: lightgray;
    margin-right: 0.5em;

    .fa {
        font-size: 0.9em;
    }
    &.introductory i:first-of-type {
        color: green;
    }
    &.intermediate i:not(:last-of-type) {
        color: orange;
    }
    &.advanced {
        color: red;
    }
}



.visually-hidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}


/* WCAG Contrast. These aim to pass AAA level for normal sized text. */
a {
    color: var(--hyperlink);
    border-bottom: 1px dotted var(--hyperlink);

    &:hover,
    &:focus,
    &:focus-visible,
    &:active {
        color: var(--hyperlink-hover);
        border-bottom: 1px solid var(--hyperlink-hover);
        text-decoration: none;
    }

    &.btn-info {
	color: black;
    }
    &.badge-info {
	color: black;
    }
}

// More a11y stuff
.text-muted {
	color: var(--text-color-muted) !important;
}
.navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover {
	text-decoration: underline;
}
.navbar-dark .navbar-nav .nav-link {
	color: white;
}
.gitter-open-chat-button {
    background-color: var(--brand-color) !important;
    color: var(--brand-color-contrast) !important;
}



nav[data-toggle='toc'] {
	margin-top: 30px;
	margin-bottom: 30px;
	.nav-link:focus, .nav-link:hover {
		text-decoration: underline;
	}

	.nav-link.active,
	.nav-link.active:focus,
	.nav-link.active:hover {
		color: var(--hyperlink);
		border-inline-start: 2px solid var(--hyperlink);
	}


    .nav {
        li {
            a {
		color: var(--text-color-muted);
                padding-inline-start: 0px;
                &:hover,
                &:focus,
                &:active {
                    padding-inline-start: 0px;
                    color: var(--hyperlink);
                    border-inline-start: none;
                }
            }
        }
    }
}

.col-sm-2 {
    padding-inline-start: 0px;
}

/* small screens */
@media screen and (max-width: 768px) {
    nav[data-toggle='toc'] {
        display: none !important;
    }

    .col-sm-10 {
        max-width: 100%;
    }
}

.contributors-line {
    color: var(--text-color-muted);
    font-size: 1.2em;

    display: flex;
    flex-wrap: wrap;
    align-content: baseline;
    line-height: 1.5em;

    .contributor-badge {
        img {
            height: 1.5em;
            line-height: 1.5em;
        }
        i {
            height: 1.5em;
            line-height: 1.5em;
            margin-left: 0.5em;
            margin-right: 0.5em;
        }
    }

    .reviewers {
	    .contributor-badge {
		    margin: 0;
		    padding: 0;
		    img {
			    margin: 0;
			    padding: 0;
		    }
	    }
    }

}

.contributor-badge {
    /* prevent breaking across lines */
    white-space: nowrap;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    border-radius: 1em;
    border: 1px dotted var(--hyperlink);
    padding-right: 0.5em;
    margin: 0.2em;
    line-height: 1em;
    flex-shrink: 0;

    img {
	height: 2em !important;
	width: 2em !important;
        border-radius: 50%;
        margin: 0 0.25em 0 0;
    }

    &:hover {
	background: var(--brand-color);
	color: var(--brand-color-contrast);
	border: 1px solid var(--hyperlink-hover);
    }
}

.contributor-badge-small{
    border: none;
    padding-right: 0em;
}

.contributor-badge-inline {
    /* prevent breaking across lines */
    white-space: nowrap;
    img {
	height: 1em !important;
	width: 1em !important;
        border-radius: 50%;
        margin: 0 0.25em 0 0;
    }
}

.funder-badge {
	display: flex;
	flex-direction: row;
	border: 1px solid var(--hyperlink);
	color: var(--text-color);
	max-width: 24em;
	height: 8em;
	margin-inline-end: 1em;
	margin-bottom: 1em;
    padding: 1em;

	div.avatar {
		display: flex;
		align-items: center;

		img.funder-avatar {
			margin: 0;
            padding: 0.5em;
			max-height: 8em;
			min-width: 8em;
			max-width: 8em;
			margin-inline-end: 1em;
		}
	}

	div.info {
		display: flex;
		flex-direction: column;
		justify-content: center;

		div.name {
			font-size: 1.2rem;
		}
		div.description {
			overflow-y: hidden;
			font-size: 0.9rem;
		}
	}
}

table.contributions{
    tr td:nth-child(1) {
        display: flex;
        flex-wrap: wrap;
    }
}


div.highlight {
	position: relative;
}
div.highlight .btn{
	-webkit-transition:opacity .3s ease-in-out;
	-o-transition:opacity .3s ease-in-out;
	transition:opacity .3s ease-in-out;
	opacity:0;
	padding:2px 6px;
	position:absolute;
	right:4px;
	top:4px;
}

@media (prefers-reduced-motion) {
  .btn {
	-webkit-transition: none;
	-o-transition: none;
	transition: none;
  }
}
.btn {
	cursor: pointer;
}


div.highlight:hover .btn,div.highlight .btn:focus{
	opacity:1
}

#tutorial_list{
    h2,h3 {
        display: inline;
    }
    .search_box {
        float: inline-end;
        i {padding-right: .5rem;}
    }
    #clear_search{
        cursor: pointer;
    }
}

ul.supporting_material{
    .btn{
        padding-inline-start: 0px;
        padding-top: 0px;
        padding-bottom: 0px;
        padding-inline-end: 10px;
        font-size: 15px;
    }
}

// chrome reports this improves UX by providing better click targets
li {
	padding-bottom: 0.2em;
}

.alert-heading {
    margin-top: 1rem;
}

// Code In/Out blocks
@media (min-width: 1200px) {
    .code-2col{
        display: flex;
        flex-direction: row;
        .code-in {
            width: 47.5%;
        }
        .code-out {
            margin-inline-start: 5%;
            width: 47.5%;
        }
    }
}

.card {
  margin-top: 1em;
}


// The default presentation
body {
	.show-when-galaxy-proxy-active {
		// cursor: not-allowed;
		display: none;
	}

	.hide-when-galaxy-proxy-active {
		display: unset;
	}

	span.tool, span.workflow {
		border: 1px solid #999;
		padding: 2px;
		border-radius: 5px;

		&:hover {
			border: 1px solid blue;
		}
	}
}

// The fancier presentation when possible
body.galaxy-proxy-active {
	.show-when-galaxy-proxy-active {
		cursor: pointer;
		display: unset;
	}

	.hide-when-galaxy-proxy-active {
		display: none;
	}

	span.tool, span.workflow {
		cursor: pointer;
		color: var(--brand-color-contrast);
		background-color: var(--brand-color);
		border-color: var(--brand-color);
		padding: 0.2em 0.5em;

		&:hover {
			background-color: var(--hyperlink);
			border-color: var(--hyperlink);
		}
	}
}


// Don't have such a wide whitespace surrounding on small screen sizes.

@media (max-width:992px) {
 .container {
  max-width: unset;
 }
}

// Videos

video::cue {
  background: #000000cc;
  color: white;
}

.playlist {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;


    &.vertical {
        flex-direction: column;
    }

    .pl-item {
        width: 16em;
        padding: 1em;

        display: flex;
        flex-direction: column;

        .title {
            font-weight: 700;
        }
        .topic {
            font-style: italic;
        }

        .cover {
            width: 200px;
        }
    }
}


#transcript {
    height: 400px;
    overflow-y: scroll;

    tr td:nth-child(1) {
        padding-right: 1em;
        color: var(--text-color-muted);
    }
}

abbr {
	// Based on https://developer.mozilla.org/en-US/docs/Web/HTML/Element/abbr#default_styling
	text-decoration: underline dotted;
	cursor: help;
	font-variant: none;
}

.fdbk {
    .card {
        .card-title {
            font-size: 2rem;
            text-align: center;
        }
    }

    .accordion {
        margin-top: 20px;

        .accordion-card {
            margin-top: 0px;

            .mb-0{
                margin-top: 0px;
            }
        }
    }
}

// Style definition lists a bit more nicely
div.contributors-line {
    dl {
      display: flex;
      flex-wrap: wrap;
      margin-bottom: 0;
    }
    dt {
      width: 8em;
      text-align: right;
      font-weight: initial;
    }
    dd {
      margin-inline-start: auto;
      width: calc(100% - 9em);
      display: flex;
    }
}

// big buttons
a.btn {
  display: inline-flex;
  align-items: center;
  white-space: normal;

  div {
    width: 100%;
    font-size: 1rem;
  }
}

$btn-red: #bf4646;
$btn-orange: var(--warning-color);
$btn-yellow: var(--tip-color);
$btn-green: var(--agenda-color);
$btn-blue: var(--handson-color);
$btn-purple: var(--question-color);
$btn-pink: var(--keypoints-color);


.btn-red{
 background-color: $btn-red;
 color: white;
}

.btn-orange{
 background-color: $btn-orange;
 color: black;
}

.btn-yellow{
 background-color: $btn-yellow;
 color: black;
}

.btn-green{
 background-color: $btn-green;
 color: black;
}

.btn-blue{
 background-color: $btn-blue;
 color: black;
}

.btn-purple{
 background-color: $btn-purple;
 color: black;
}

.btn-pink{
 background-color: $btn-pink;
 color: black;
}


.btn-square-small {
  width: 50px !important;
  max-width: 100% !important;
  max-height: 100% !important;
  height: 50px !important;
  text-align: center;
  padding: 5px;
  font-size:0.75rem;
  margin: 5px;
}

.btn-square-medium {
  width: 100px !important;
  max-width: 100% !important;
  max-height: 100% !important;
  height: 100px !important;
  text-align: center;
  padding: 5px;
  font-size:1rem;
  margin: 5px;
}

.btn-square-large {
  width: 150px !important;
  max-width: 100% !important;
  max-height: 100% !important;
  height: 150px !important;
  text-align: center;
  padding: 5px;
  font-size:1.25rem;
  margin: 5px;
}

.btn-square-extralarge {
  width: 200px !important;
  max-width: 100% !important;
  max-height: 100% !important;
  height: 200px !important;
  text-align: center;
  padding: 5px;
  font-size:1.5rem;
  margin: 5px;
}

.home-cta-button {
	width: 45%;
	flex-direction: column;
	padding: 5px;
	font-size:1.25rem;
	margin: 5px;
	color: var(--text-color); // don't need to distinguish for wcag.
	border: 1px solid var(--border-light);

	div {
		font-size: 1.3rem !important;
	}

	&:hover {
		box-shadow: 2px 2px 4px var(--text-color);
	}
}

.button-group {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	justify-content: space-around;
}

.btn-primary {
	background-color: var(--brand-color);
	border-color: var(--brand-color);
	color: var(--brand-color-contrast);
}
.btn-secondary {
	background-color: var(--secondary-color);
	border-color: var(--secondary-color);
	color: var(--secondary-color-text);
}
.btn-success {
	background-color: #1d7531; // AA
	border-color: #1d7531; // AA
}


/* CYOA */
.gtn-cyoa {
    input[type="radio"] {
        display: none;
        &:checked+label {
            background-color: var(--question-color);
        }
    }

    .btn-secondary {
        color: var(--text-color);
        color: black;
        background-color: var(--handson-color);
        border-color: transparent;
        &:hover {
            background-color: var(--solution-color);
        }
    }

    label {
        padding: 1em;
        display: inline-block;
    }
}

.gtn-cyoa-hidden {
	height: 0px;
	visibility: hidden;
	display: none;
	padding: 0rem;
}

ul.no-bullets {
	list-style: none;
	padding-inline-start: 0;
}
ul.text-list, ol.text-list {
	list-style: none;
	padding-inline-start: 0;

    li {
        display: inline;
    }
}

.gtn-card {
    border-radius: 10px;
    margin-bottom: 1em;

    .card-title {
        font-size: 500%;
        font-weight: 900;
        margin-bottom: 0;
        text-align: center;
    }

    .card-title-small {
        font-size: 250%;
        font-weight: 900;
        margin-bottom: 0;
        text-align: center;

    }
    .card-text {
        text-align: center;
        font-size: 150%;
        padding: 0.3em;
    }

    .card-text-small {
        text-align: center;
        font-size: 125%;
        padding: 0.3em;
    }
}


.dropdown-item {
	&:focus-visible {
		outline: var(--outline-color) 3px solid;
	}

	&:focus, &:hover {
		background: var(--brand-color);
		color: var(--brand-color-contrast);
	}
}
.dropdown-item:focus-visible {
}

.dropdown-header {
	color: var(--text-color-muted);
}

ol.breadcrumb {
	background: var(--secondary-color);

	.breadcrumb-item.active {
		color: var(--secondary-color-text);
	}
}



a[target="_blank"]::after {
  content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAQElEQVR42qXKwQkAIAxDUUdxtO6/RBQkQZvSi8I/pL4BoGw/XPkh4XigPmsUgh0626AjRsgxHTkUThsG2T/sIlzdTsp52kSS1wAAAABJRU5ErkJggg==) " (opens in new tab)";
  display: inline-block;
  margin-inline-start: 0.2em;
  height: 1em;
}

/* Not for figures where it's duplicated */
figure > a[target="_blank"]::after {
	content: unset;
}

// For the git-gat learning pathway boxes
#git-gat-timeline {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}
#git-gat-timeline li  {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--text-color);
    border-radius: 5px;
    padding: 0.5em;
    margin: 0.5em;
}
#git-gat-timeline li.active {
    background: #a8ffa8;
}
#git-gat-timeline li.active a {
    color: black;
}
#git-gat-timeline li.disabled {
    background: #eee;
}
#git-gat-timeline li.disabled a {
    color: #555;
}
#git-gat-timeline span {
    align-self: center;
}


.logosoup {
	display: flex;
	flex-wrap: wrap;
	flex-direction: row;
	justify-content: space-between;
	align-items: flex-end;
	row-gap: 1em;

	figure {
		max-width: 20em;
		margin: 0rem 0.5rem;
		border: 0px transparent;

		img {
			max-height: 5em;
		}

		figcaption {
			text-align: left;
		}
	}

	// Unset this for logos on the homepage
	.logo {
		border: none;
	}
}

section#tutorial-content {
	margin-top: 2rem;
}

.eventtable {
  th {
    font-weight: bold;
  }
  .eventtable-date{
      white-space: nowrap;
  }
  .eventtable-title {
    font-weight: bold;
  }
  .eventtable-description{
    margin-top: 0.25 rem;
    font-size: 80%;
  }
}

section.event {
    .event-image{
      margin-bottom: 1em;
    }

	hgroup {
		border: 1px solid var(--border-light);
		box-shadow: 0 0 5px var(--border-light);
		padding: 0 1rem;
		margin-bottom: 2rem;

		h1 {
			font-weight: 900;
		}

		p {
			text-transform: uppercase;
			color: var(--text-color-muted);
		}
	}

	.nav-tabs {
		button.nav-link {
			font-weight: 800;
		}
	}

}
.nav-tabs {
	// Tabs default to a text colour that isn't overridden somewhere else.

	.nav-item {
		margin-bottom: 0;
		padding-bottom: 0;
		border: 1px solid transparent;

		&:hover {
			color: var(--hyperlink-hover);
			border: 1px solid var(--hyperlink-hover);
		}

		button.nav-link{
			color: var(--text-color);
			cursor: pointer;
			background: none;
			font-size: 1.2rem;
			border-top-left-radius: 0;
			border-top-right-radius: 0;

			&:hover {
				color: var(--hyperlink-hover);
			}

			&.active {
				background: var(--overview-color);
				border: 1px solid var(--overview-color);
				color: white;
			}
		}
	}

}

body[data-brightness="dark"] {
	img.invert-safe {
		filter: invert(1);
	}

	.modal-content {
		button.close {
			filter: invert(1);
		}
	}
}

.modal-dialog {
	border: 1px solid var(--border);

	.modal-content {
		background: var(--color-background);
	}
}


.recording {
}

.recording-video {
    width: 75%;

    iframe, video {
      width:100%;
      height: 100%;
      aspect-ratio: 16 / 9;
    }
}

.recording-metadata {
    table tbody {
      display: block;
    }

	table tr td {
		padding: 0.3em;
        width: 100%;
        display: table-cell;
	}
	table tr td:first-child {
		text-align: right;
        display: table-cell;
        width: 25%;
	}
    table tr td:nth-child(2) {
		text-align: left;
        display: table-cell;
        width: 100%;
	}

}