:root {
    /*
	 * Various different 'brand' colors.
	 *
	 * Dandelion:      #fdc82f
	 * WebCMS3
	 *   blue:         #45a6f4
	 *   l. blue:      #9ccff9
	 *   d. orange:    #ff7144
	 *   l. d. orange: #ffb39b
	 *   d. purple:    #825dc4
	 *   l. d. purple: #beace0
	 *   green:        #6abd6e
	 *   indigo:       #6170c2
	 *   l. indigo:    #adb4e0
	 *   orange:       #ffaa2c
	 *   pink:         #ed447d
	 *   l. pink:      #f59dbb
	 *   purple:       #af50bf
	 *   l. purple:    #d6a6de
	 *   red:          #e05757
	 *   l. red:       #ffacb4
	 */
    --main-color: #ffa071;
    --text-color-against-main-color: black;
    --background-color: #ffffff;
    --no-filter: none !important;
    --invert-filter: invert(92%) hue-rotate(180deg);
}

html {
    filter: var(--invert-filter);
}

iframe,
.assignment-thumbnail,
.meet-the-team {
    filter: var(--invert-filter);
}

/* a slightly lightened --main-color, manually made */
body {
    background-color: #fef1eb;
}

/*
 * Fix content widths --- this ensures the text column is a reasonable
 * width to read, and is centered on the viewport.
 */
main[aria-label="Content"] {
    max-width: 56rem;
    margin: 1rem auto;
}

/*
 * Adjust the display of preformatted text (used throughout!)
 */
pre {
    border: thin solid #eeeeee;
    margin: 0.25rem 1rem;
    padding: 0.25rem 0.5rem;
    white-space: pre-wrap;
}

main[aria-label="Content"] {
    max-width: 56rem;
    margin: 1rem auto;
}

pre {
    border: thin solid #eeeeee;
    margin: 0.25rem 1rem;
    padding: 0.25rem 0.5rem;
    white-space: pre-wrap;
}

code {
    margin-right: 0.3em;
    margin-left: 0.3em;
    tab-size: 2;
    border-radius: 3px;
    padding: 0.2em 0.4em;
    font-size: 85%;
    background: rgba(135, 131, 120, 0.15);
    color: #eb5757;
}


/* Style command entry into various tools. */
pre[is="tty"] {}

pre[is="tty"]>kbd {
    font-weight: bold;
    font-size: 100%;
    padding: 0;
    background: none;
    border: none;
    color: black;
}

pre[is="tty"]>kbd:before {
    font-weight: normal;
    color: var(--gray);
}

pre[is="tty"]>kbd[data-prompt]:before {
    content: attr(data-prompt) " ";
}

pre[is="tty"]>kbd[is="sh"]:before {
    content: "$ ";
}

pre[is="tty"]>kbd[is="sh_comment"]:before {
    content: "# ";
}

pre[is="tty"]>kbd[is="sh_comment"] {
    color: grey;
}

/* Fix indentation. */
pre {
    tab-size: 4;
    -moz-tab-size: 4;
}

pre.mips {
    tab-size: 8;
    -moz-tab-size: 8;
}

/* Tutorial questions. */
body>ol>li {
    margin-top: 1rem;
}

p {
    margin-bottom: 0.5rem;
}

*+p {
    margin-top: 0.5rem;
}

/* indicate ctrl-d typed */
.eof:before {
    content: "Ctrl-D";
    font-weight: lighter;
    font-style: italic;
    font-family: "Courier New", Courier, monospace;
    border: thin solid;
    border-radius: 5px;
    padding: 1px 4px;
}

.eof:after {
    position: relative;
    content: "Ctrl and D keys pressed";
    border: 2px solid black;
    background-color: yellow;
    opacity: 0;
    height: 5em;
    width: 10px;
    border-radius: 5px;
    transition: opacity 0.5s;
}

.eof:hover::after {
    opacity: 1;
}

/*
 * Lay out tutorial answers.
 */
.answer {
    border: thin solid var(--blue);
    padding: 1rem;
    padding-bottom: 0.5rem;
    margin-bottom: 1rem;
}

.inline_answer {
    padding: 0.1rem !important;
}

.answer>h4 {
    background-color: #eef;
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
    border-bottom: 1px solid var(--blue);
    display: block;
    padding: 0.5rem 1rem;
    margin: -1rem -1rem 0;
    font-size: 1rem;
    font-weight: bold;
}

.tutor_guide {
    border: thin solid var(--orange);
    padding: 1rem;
    padding-bottom: 0.5rem;
    margin-bottom: 1rem;
}

atci-tutors-only {
    border: thin solid var(--orange);
    padding: 1rem;
    padding-bottom: 0.5rem;
    margin-bottom: 1rem;
}

.tutor_guide>h4 {
    background-color: #eef;
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
    border-bottom: 1px solid var(--orange);
    display: block;
    padding: 0.5rem 1rem;
    margin: -1rem -1rem 0;
    font-size: 1rem;
    font-weight: bold;
}

.hidden {
    display: none;
}

/*
 * Hints and asides.
 */
aside {
    border: 0.01rem solid var(--light);
    /* .border */
    border-left-width: 0.25rem;
    border-radius: 0.25rem;
    /* .rounded */
    margin: 1.5rem;
    /* .m-4 */
    padding: 0.5rem;
    /* .p-2 */
}

aside:before {
    text-transform: uppercase;
    font-weight: bold;
    font-size: 90%;
    display: block;
    color: var(--white);
    max-width: 8rem;
    padding: 0.5rem;
    margin-top: -0.5rem;
    /* undo .p-2 */
    margin-left: -0.5rem;
    /* undo .p-2 */
    margin-bottom: 0.5rem;
    border-bottom-right-radius: 0.25rem;
    /* .routded */
}

aside.hint {
    border-color: var(--green);
}

aside.hint:before {
    background-color: var(--green);
    content: "hint: ";
}

aside.note {
    border-color: var(--cyan);
}

aside.note:before {
    background-color: var(--cyan);
    content: "note: ";
}

aside.reminder {
    border-color: var(--red);
}

aside.reminder:before {
    background-color: var(--red);
    content: "reminder: ";
}

aside.rationale {
    border-color: var(--purple);
}

aside.rationale:before {
    background-color: var(--purple);
    content: "rationale: ";
}

aside.warning {
    border-color: var(--orange);
}

aside.warning:before {
    background-color: var(--orange);
    content: "warning: ";
}

aside.danger {
    border-color: var(--red);
}

aside.danger:before {
    background-color: var(--red);
    content: "danger: ";
}

aside.danger {
    border-color: var(--red);
}

aside.danger:before {
    background-color: var(--red);
    content: "danger: ";
}

body>nav.navbar {
    background-color: var(--main-color);
    colour: var(--text-color-against-main-color);
}

/*
 * Sectioning for the home page.
 * Replaces ad-hoc .thick_hr with a bordered section.
 */
section.homepage-section {
    /* inherits .thick_hr */
    margin-top: 1.5rem;
    padding-top: 0.5rem;
}

/*
 * Tidy up the login form.
 */
.login-form {
    margin: 1rem auto;
}

.login-form .form-group {
    margin-top: 0;
    margin-bottom: 0;
}

.login-form button {
    margin-top: 1rem;
}

.login-form div.form-group input[type="text"] {
    border-radius: 0.3rem 0.3rem 0 0;
}

.login-form div.form-group input[type="password"] {
    border-radius: 0 0 0.3rem 0.3rem;
}

/*
 * Exercise layout on the lab page.
 */
.exercise {
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #eee;
}

.exercise>header {
    padding: 0.75rem 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid var(--green);
    border-radius: 0.25rem;
    border-left-width: 0.5rem;
    /* left-tab effect */
}

.exercise>header>h3 {
    margin: 0;
}

.exercise.with-pair>header {
    border-color: var(--green);
}

.exercise.with-self>header {
    border-color: var(--red);
}

.exercise.with-test>header {
    border-color: var(--blue);
}

/*
 * Adjust the layout of highlighted program blocks.
 */
.highlight {
    border: 1px solid #f0f0f0;
    border-radius: 0.25rem;
    margin: 0.25rem 0;
    padding: 0.25rem 0.5rem;
}

.highlight>pre {
    border: 0;
    margin: 0;
    padding: 0;
}

/*
 * Code highlighting styles, from Pygments:
 */
.highlight .hll {
    background-color: #ffffcc;
}

.highlight {
    background: #f8f8f8;
}

.highlight .c {
    color: #408080;
    font-style: italic;
}

/* Comment */
.highlight .err {
    border: 1px solid #ff0000;
}

/* Error */
.highlight .k {
    color: #008000;
    font-weight: bold;
}

/* Keyword */
.highlight .o {
    color: #666666;
}

/* Operator */
.highlight .ch {
    color: #408080;
    font-style: italic;
}

/* Comment.Hashbang */
.highlight .cm {
    color: #408080;
    font-style: italic;
}

/* Comment.Multiline */
.highlight .cp {
    color: #bc7a00;
}

/* Comment.Preproc */
.highlight .cpf {
    color: #408080;
    font-style: italic;
}

/* Comment.PreprocFile */
.highlight .c1 {
    color: #408080;
    font-style: italic;
}

/* Comment.Single */
.highlight .cs {
    color: #408080;
    font-style: italic;
}

/* Comment.Special */
.highlight .gd {
    color: #a00000;
}

/* Generic.Deleted */
.highlight .ge {
    font-style: italic;
}

/* Generic.Emph */
.highlight .gr {
    color: #ff0000;
}

/* Generic.Error */
.highlight .gh {
    color: #000080;
    font-weight: bold;
}

/* Generic.Heading */
.highlight .gi {
    color: #00a000;
}

/* Generic.Inserted */
.highlight .go {
    color: #888888;
}

/* Generic.Output */
.highlight .gp {
    color: #000080;
    font-weight: bold;
}

/* Generic.Prompt */
.highlight .gs {
    font-weight: bold;
}

/* Generic.Strong */
.highlight .gu {
    color: #800080;
    font-weight: bold;
}

/* Generic.Subheading */
.highlight .gt {
    color: #0044dd;
}

/* Generic.Traceback */
.highlight .kc {
    color: #008000;
    font-weight: bold;
}

/* Keyword.Constant */
.highlight .kd {
    color: #008000;
    font-weight: bold;
}

/* Keyword.Declaration */
.highlight .kn {
    color: #008000;
    font-weight: bold;
}

/* Keyword.Namespace */
.highlight .kp {
    color: #008000;
}

/* Keyword.Pseudo */
.highlight .kr {
    color: #008000;
    font-weight: bold;
}

/* Keyword.Reserved */
.highlight .kt {
    color: #b00040;
}

/* Keyword.Type */
.highlight .m {
    color: #666666;
}

/* Literal.Number */
.highlight .s {
    color: #ba2121;
}

/* Literal.String */
.highlight .na {
    color: #7d9029;
}

/* Name.Attribute */
.highlight .nb {
    color: #008000;
}

/* Name.Builtin */
.highlight .nc {
    color: #0000ff;
    font-weight: bold;
}

/* Name.Class */
.highlight .no {
    color: #880000;
}

/* Name.Constant */
.highlight .nd {
    color: #aa22ff;
}

/* Name.Decorator */
.highlight .ni {
    color: #999999;
    font-weight: bold;
}

/* Name.Entity */
.highlight .ne {
    color: #d2413a;
    font-weight: bold;
}

/* Name.Exception */
.highlight .nf {
    color: #0000ff;
}

/* Name.Function */
.highlight .nl {
    color: #a0a000;
}

/* Name.Label */
.highlight .nn {
    color: #0000ff;
    font-weight: bold;
}

/* Name.Namespace */
.highlight .nt {
    color: #008000;
    font-weight: bold;
}

/* Name.Tag */
.highlight .nv {
    color: #19177c;
}

/* Name.Variable */
.highlight .ow {
    color: #aa22ff;
    font-weight: bold;
}

/* Operator.Word */
.highlight .w {
    color: #bbbbbb;
}

/* Text.Whitespace */
.highlight .mb {
    color: #666666;
}

/* Literal.Number.Bin */
.highlight .mf {
    color: #666666;
}

/* Literal.Number.Float */
.highlight .mh {
    color: #666666;
}

/* Literal.Number.Hex */
.highlight .mi {
    color: #666666;
}

/* Literal.Number.Integer */
.highlight .mo {
    color: #666666;
}

/* Literal.Number.Oct */
.highlight .sa {
    color: #ba2121;
}

/* Literal.String.Affix */
.highlight .sb {
    color: #ba2121;
}

/* Literal.String.Backtick */
.highlight .sc {
    color: #ba2121;
}

/* Literal.String.Char */
.highlight .dl {
    color: #ba2121;
}

/* Literal.String.Delimiter */
.highlight .sd {
    color: #ba2121;
    font-style: italic;
}

/* Literal.String.Doc */
.highlight .s2 {
    color: #ba2121;
}

/* Literal.String.Double */
.highlight .se {
    color: #bb6622;
    font-weight: bold;
}

/* Literal.String.Escape */
.highlight .sh {
    color: #ba2121;
}

/* Literal.String.Heredoc */
.highlight .si {
    color: #bb6688;
    font-weight: bold;
}

/* Literal.String.Interpol */
.highlight .sx {
    color: #008000;
}

/* Literal.String.Other */
.highlight .sr {
    color: #bb6688;
}

/* Literal.String.Regex */
.highlight .s1 {
    color: #ba2121;
}

/* Literal.String.Single */
.highlight .ss {
    color: #19177c;
}

/* Literal.String.Symbol */
.highlight .bp {
    color: #008000;
}

/* Name.Builtin.Pseudo */
.highlight .fm {
    color: #0000ff;
}

/* Name.Function.Magic */
.highlight .vc {
    color: #19177c;
}

/* Name.Variable.Class */
.highlight .vg {
    color: #19177c;
}

/* Name.Variable.Global */
.highlight .vi {
    color: #19177c;
}

/* Name.Variable.Instance */
.highlight .vm {
    color: #19177c;
}

/* Name.Variable.Magic */
.highlight .il {
    color: #666666;
}

/* Literal.Number.Integer.Long */

/**********************************************************************/
/*                          Homepage Styles                           */
/**********************************************************************/

/* For simplicity, all homepage styles can be found here... */

.course-header {
    text-align: center;
    font-weight: bold;
    color: black;
}

h2.homepage {
    font-size: 1.5rem;
    font-weight: bold;
    color: black;
}

h4 {
    font-size: 1.2rem;
}

a.homepage,
a:hover.homepage,
a:focus.homepage,
a:active.homepage {
    text-decoration: none;
    color: inherit;
}

.homepage-box {
    z-index: -1;
    border-radius: 8px;
    background-color: var(--background-color);
    box-shadow: 5px 5px 5px 3px rgb(0 0 0 / 3%);
}

#homepage-navbar>* {
    margin: 1% 1%;
    color: var(--text-color-against-main-color);
}

#homepage-container {
    font-family: Noto Sans, Roboto, "Segoe UI", Tahoma, sans-serif;
    font-stretch: condensed;
    font-size: 1.1rem;
}

#course-title-container>* {
    margin: 0;
}

/* A homepage-group will contain a title + a "homepage-group-options" class */
.homepage-group {
    margin-bottom: 1rem;
    width: 100%;
    padding: 10px;
}

.homepage-group-options {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    /* color of the button text */
    color: black;
    margin-top: 10px;
}

.homepage-group-options.centered {
    justify-content: center;
}

.homepage-group-options .break {
    flex-basis: 100%;
}

.homepage-primary-button {
    margin: 5px 10px;
    display: flex;
    justify-content: center;
    align-items: center;

    padding: 8px 6px;
    text-align: center;
    background-color: var(--main-color);
    color: var(--text-color-against-main-color);
    width: 190px;
    max-width: 90%;
    font-size: 14px;
    border: none;
    border-radius: 10px;

    box-shadow: 5px 5px 5px 3px rgb(0 0 0 / 3%);

    transition: 0.5s;
}

#exam-link-button {
    /* I'm so sorry, I know I shouldn't do this
   * but it's late and I'm tired so this is what we get
   **/
    width: 100%;
    max-width: 97%;
    color: white;
    font-size: 5em;
}

.homepage-primary-button:hover {
    transform: scale(1.05);
}

.homepage-primary-button.image-embedded {
    flex-direction: column;
}

.homepage-primary-button.image-embedded>img {
    padding: 0.5rem;
    width: 100%;
    height: 100%;

    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
}

#assignments-container {
    display: flex;
    overflow-x: auto;

    align-items: center;
}

.assignment-container {
    margin: 20px;
    padding: 15px 15px 8px 15px;
    width: 20rem;
    height: 15rem;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    transition: 0.3s;
}

.assignment-container:hover {
    transform: scale(1.1);

    transition: 0.3s;
}

.assignment-container>img {
    height: 80%;
    border-radius: inherit;
    border: 1px solid lightgray;

    object-fit: cover;
}

#weeks-container {
    width: 100%;
}

#week-tabs {
    border: 0.15rem var(--main-color) solid;
    border-radius: 10px 10px 0 0;
}

.tabs-container {
    display: flex;
    justify-content: space-evenly;

    width: 100%;
}

.tab {
    position: relative;
    z-index: 0;

    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: -5px;
    width: 100%;
    height: 60px;

    border: solid lightgray 1px;
    border-radius: 10px 10px 0 0;

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

    transition: background-color 0.3s;
}

.tab.disabled {
    pointer-events: none;
    opacity: 0.5;
}

.tab.selected {
    z-index: 2;

    border-bottom: none;
    outline: none;
    cursor: default;

    font-weight: bold;
}

.tab:not(.selected):hover {
    background-color: lightgray;
    cursor: pointer;
}

.tab>.tab-data-source {
    display: none;
}

#week-tabs+.homepage-box {
    border-top: 0;
}

.tab.borderless {
    border: none;
}

.tab.borderless.selected {
    border-bottom: 0.2rem solid var(--main-color);
    margin-bottom: 0;
}

.tab-data.homepage-box {
    padding: 20px;
    position: relative;
    z-index: 1;

    border-top-left-radius: 0;
    border-top-right-radius: 0;

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

.week-section {
    position: relative;
    z-index: 1;
    border: 0.1rem solid lightgray;
    border-radius: 10px;
    padding: 1rem;
    margin-bottom: 1rem;
}

.week-section-title {
    position: relative;
    z-index: 2;
    padding: 0.2rem;
    width: fit-content;
    margin: 0 0 -1rem 1rem;
    background-color: var(--background-color);
}

#course-resources>* {
    margin-top: 20px;
}

.meta-link-list-search-bar-container {
    display: flex;
    height: 40px;
}

.meta-link-list-search-bar-container>* {
    height: 100%;
}

.meta-link-list-search-bar {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.meta-link-list-search-bar-button {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    background-color: var(--main-color);
    color: var(--text-color-against-main-color);
}

.meta-link-list-search-bar-button:hover {
    color: var(--text-color-against-main-color);
}

@media all and (max-width: 650px) {
    .week-text {
        display: none;
    }
}

/* Bootstrap Overrides */
.nav-link {
    font-size: 1.2rem;
    color: var(--text-color-against-main-color);
}

.nav-link:not(.selected):focus,
.nav-link:not(.selected):hover,
.navbar-brand:not(.selected):focus,
.navbar-brand:not(.selected):hover {
    opacity: 50%;
    cursor: pointer;
}
