/*
 *
 *
 */
 
/* reset */
* {
    box-sizing: border-box;
    margin: 0px;
    padding: 0px;
}

html {
    height: 100%;
}

body {
    background-image: url(noise-200x200-1.png);
    /*background-color: #143a14;*/
    background-color: #ddd;
    height: 100%;
}

.collapsed {
    visibility: hidden;
    display: none;
}

div#container {
    margin-left: auto;
    margin-right: auto;
    width: 1160px;
    position: relative;
    height: 100%;
}

div#cookie-law-message {
    width: 100%;
    position: absolute;
    height: 4rem;
}

div#cookie-law-message > div {
    margin-left: auto;
    margin-right: auto;
    width: 1160px;
    position: relative;
    z-index: 100;
    background: #39ad39;
    border: 2px solid #333;
    height: 100%;
    padding: 4px;
}
div#cookie-law-message > div > p {
    font-family: "LatoWeb", "DejaVu Sans", "Verdana", "Ubuntu", "Arial", sans-serif;
    font-size: 1.3rem;
    font-weight: normal;
    color: #222;
}
div#cookie-law-message > div > button {
    position: absolute;
    right: 4px;
    top: 4px;
    z-index: 101;
    font-family: "LatoWeb", "DejaVu Sans", "Verdana", "Ubuntu", "Arial", sans-serif;
    font-size: 1.0rem;
    font-weight: normal;
    color: #222;
    padding: 1px;
}
div#cookie-law-message * a {
    color: #143a14;
}
div#cookie-law-message * a:visited {
    color: #ad3939;
}
div#cookie-law-message * a:hover {
    color: #eee;
}

/* HEADER */
header.top-header {
    background: #2e862e;
    background-image: url(noise-200x200-1.png);
    background-image: url(noise-200x200-1.png), linear-gradient(to bottom, rgba(0,0,0,0) 70%, rgba(0,0,0,0.06));

    top: 0px;
    left: 0px;
    width: 100%;
    height: 2.5rem;

    position: fixed;
    z-index: 20;

    border-bottom: 1px solid #143a14;
    box-shadow: 0 0 1px rgba(0, 0, 0, 0.4);
}

div#container-top {
    margin-left: auto;
    margin-right: auto;
    position: relative;
    max-width: 1160px;
}

    div#container-top div.page-title {
        position: relative;
    }

    div#container-top div.page-title > h1 {
        font-family: "LatoWebBlack", sans-serif;
        font-style: normal;
        font-variant: small-caps;
        font-size: 2.25rem;
        text-shadow: 4px 4px 0 rgba(31,31,31,0.2);
        color: #ddd;
        letter-spacing: 0.1em;
        display: inline-block;
    }
	
    div#container-top div.user-actions {
        color: #eee;
        font-family: "LatoWeb", sans-serif;
        font-weight: bold;
        font-size: 1.0rem;
        text-shadow: 1px 0px 0 rgba(200, 200, 200, 1.0),
                     2px 0px 1px rgba(0, 0, 0, 1.0);
        
        position: absolute;
        top: 0;
        right: 0;
        height: 2.5rem;
        
        background: rgba(0, 0, 0, 0);
        z-index: 2;
        letter-spacing: 0.05em;
        word-spacing: 0.1em;
    }

    div#container-top div.side-by-side-top,
    div#container-top div.user-actions > a {
        height: 2.5rem;
        display: inline-block;
        vertical-align: top;
    }
    div#container-top div.user-actions > a {
        margin-left: 4px;
    }

    div#container-top div.user-actions div.user-action,
    div#container-top div.user-actions div.user-inaction {
        height: 2rem;
        position: relative;
        padding: 0.40rem 0.25rem 0 0.25rem;
        margin: 4px 0;
        text-align: center;
        vertical-align: middle;
        text-decoration: none;
    }
    div#container-top div.user-actions div.user-action {
        border: 2px solid rgba(0, 0, 0, 0.1);
        border-radius: 8px;
        background: rgba(0, 0, 0, 0.15);
    }
    div#container-top div.user-actions div.user-inaction {
        border: 2px solid rgba(0, 0, 0, 0);
        border-radius: 8px;
    }

    div#container-top div.vertical-separator {
        border-left: 1px solid #143a14;
        box-shadow: 0 0 2px rgba(0,0,0,0.7);
        margin: 4px 4px 0 4px;
        height: 2rem;        
        position: relative;
    }

    div#container-top a:link {
        color: #ccc;
        text-decoration: none;
    }
    div#container-top a:visited {
        color: #ccc;
        text-decoration: none;
    }
    div#container-top a > div.user-action:hover {
        color: #ccc;
        text-shadow: 1px 0px 0 rgba(200, 200, 200, 1.0),
                     2px 0px 1px rgba(0, 0, 0, 1.0);
        background: rgba(0, 0, 0, 0.25);
    }

    div#user-menu {
        position: relative;
        display: none;
        width: 0;
        height: 0;
        padding: 0;
        margin: 0;
        top: -4px;
        right: 12.5rem;
    }
    div#user-menu > div {
        position: absolute;
        width: 15rem;
        background: #39ad39;
        border: 1px solid #2e862e;
        box-shadow: 0 0 1px rgba(0, 0, 0, 0.8);
    }
    div#user-menu > div > div {
        padding: 4px 4px;
        background: #39ad39;
        border: 1px solid #39ad39;
        border-radius: 4px;
    }
    div#user-menu > div > div > a {
        padding: 2px;
    }
    div#user-menu > div > div:hover {
        background: #59cd59;
        border: 1px solid #59cd59;
        border-radius: 4px;
    }
    div#user-menu > div > div:hover > a {
        color: #eee;
    }
    #user-menu-arrow {
        cursor: pointer;
    }

/* NAVIGATION */
nav.breadcrumb {
    background-color: #39ad39;
    background-image: url(noise-200x200-1.png);
    background-image: url(noise-200x200-1.png), linear-gradient(to bottom, rgba(0,0,0,0) 65%, rgba(0,0,0,0.11));

    left: 0px;
    top: 2.5rem;
    width: 100%;
    height: 1.5rem;
    position: fixed;
    z-index: 10;

    border-bottom: 1px solid #2e862e; /* #143a14; */
    box-shadow: 0 0 1px rgba(0, 0, 0, 0.8);
    padding-top: 4px;
    font-family: "LatoWebBold", "Verdana";
    font-size: 0.9rem;
    
    color: #222;
}

    nav.breadcrumb div.top-nav-container {
        margin-left: auto;
        margin-right: auto;
        max-width: 1160px;
        position: relative;
    }

    nav.breadcrumb ul {/*
        margin-left: auto;
        margin-right: auto;
        width: 1160px;*/
    }

    nav.breadcrumb ul div {
        display: inline;
    }

    nav.breadcrumb ul div.separator {
        margin-left: 5px;
        margin-right: 5px;
        display: inline;
    }

        nav.breadcrumb ul li {
            list-style-type: none;
            display: inline;
            height: 100%;            
        }

            nav.breadcrumb ul li.last {
                color: #444;
            }

            nav.breadcrumb ul li a {
                color: #222;
                text-decoration: underline;
                border: 1px solid rgba(0,0,0,0);
                border-radius: 3px;
            }

            nav.breadcrumb ul li a:hover {
                color: #222;
                background-color: #59cd59;
                text-decoration: underline;
            }

    nav.breadcrumb div.right-side {
        position: absolute;
        right: 0px;
        top: -4px;
        width: 280px;
        height: 24px;
        margin: 0;
        padding: 0;
    }
    nav.breadcrumb div.vertical-separator {
        border-left: 1px solid #143a14;
        box-shadow: 0 0 2px rgba(0,0,0,0.7);
        height: 24px;
        display: inline-block;
        float: right;
    }
    nav.breadcrumb img {
        display: inline-block;
        position: relative;
        padding: 0 2px;
        float: right;
    }
    nav.breadcrumb form {
        display: inline-block;
        position: relative;
        height: 24px;
        width: 120px;
        margin: 0 2px;
        float: right;
    }
    nav.breadcrumb button {
        border: 1px solid #143a14;
        background: #39ad39;
        display: inline-block;
        position: relative;
        height: 20px;
        top: 2px;
        width: 118px;
        padding: 0;
        margin: 0 2px;
        font-size: 0.8rem;
        font-family: "Verdana";
        float: right;
        cursor: pointer;
    }
    
    nav.breadcrumb button.pressed {
        background: #003b0b;
        color: white;
    }
    
    nav.breadcrumb form select {
        border: 1px solid #143a14;
        background: #39ad39;
        display: inline-block;
        position: relative;
        height: 20px;
        top: 2px;
        width: 118px;
        padding: 0;
        margin: 0;
        font-size: 0.8rem;
        font-family: "Verdana";
    }
    


/* Expand button for small screens for ToC and Termbank */
button.expand-box, button.retract-box {
    background: #ccc;
    border: 0 solid #fff;
    margin: 0;
    padding: 0;
    width: 12px;
    height: 430px;
    line-height: 3.0;
    float: left; /* TODO: flexbox */
    display: none;
}
button.expand-box:hover,
button.retract-box:hover {
    background: #39ad39;
}
div.toc-box > button.expand-box,
div.toc-box > button.retract-box {
    height: 426px;
}

/* Termbank */
div.termbank {
    position: fixed;
    left: 0.5rem;
    top: 4.5rem;
    
    width: 360px;
    min-height: 80px;

    /*background-color: #39ad39;*/
    background-color: #ddd;
    color: #222;
    z-index: 2;

    font-family: "LatoWeb", "DejaVu Sans", "Verdana", "Ubuntu", "Arial", sans-serif;
    font-size: 1.0em;
    font-weight: normal;

    border: 1px solid #2e862e;
    border-radius: 1px;
}
    div.termbank div.termbank-contents {
        padding: 4px;
    }

    div.termbank-contents div.termbank-heading {
        font-weight: bold;
        border-bottom: 1px solid #222;
        margin-bottom: 4px;
    }

    div.termbank-contents div.termbank-search-div {
        padding-bottom: 5px;
        border-bottom: 1px solid #222;
        display: flex;
    }

    div.termbank-contents div.termbank-search-div > input#termbank-search {
        border: 1px solid #222;
        max-width: 100%;
        flex: 1;
    }
    
    div.termbank-contents div.list-div {
        font-weight: normal;
        border: 0;
        margin-top: 5px;
    }

    div.termbank-contents span.term-title-letter {
        font-weight: bold;
    }
    
    div.termbank-contents ol > li {
        padding: 2px 1px;
        list-style-type: none;
        position: relative;
        border-radius: 2px;
    }
    
    div.termbank-contents ol > li > ol {
        padding: 0 7px;
    }
    
/* Table of Contents */
div.toc-box {
    position: fixed;
    right: 0.5rem;
    top: 4.5rem;
    
    width: 360px;
    min-height: 80px;

    /*background-color: #39ad39;*/
    background-color: #ddd;
    color: #222;
    z-index: 1;

    font-family: "LatoWeb", "DejaVu Sans", "Verdana", "Ubuntu", "Arial", sans-serif;
    font-size: 1.0em;
    font-weight: normal;

    border: 1px solid #2e862e;
    border-radius: 1px;
}

    div.toc-box nav.toc {
            padding: 4px;
    }

    div.toc-box div.toc-box-heading {
        font-weight: bold;
        border-bottom: 1px solid #222;
        margin-bottom: 4px;
    }
    div.toc-box-progress-info {
        font-weight: bold;
        font-size: 0.7rem;
        text-align: center;
        margin-bottom: -8px;
    }
    nav.toc div.list-div {
        font-weight: normal;
        border: 0;
        margin: 0;
    }
    nav.toc ol {
        margin-left: 1.5em;
    }
    nav.toc ol > li {
        margin-left: -1.5em;
        padding: 2px 1px;
        /*margin-bottom: 4px;*/
        list-style-type: none;
        position: relative;
        border-radius: 2px;
    }
    nav.toc li.toc-visible {
        background-color: #99cc99;
    }
    nav.toc li.ol-container {
        }
    nav.toc a:link {
        color: #143a14;
        padding-right: 16px;
    }
    nav.toc a:visited {
        color: #ad3939;
    }
    nav.toc li:hover {
        background-color: #59cd59;
    }
    nav.toc a:active {
        color: #ddd;
    }
    nav.toc li > img {
        padding: 0px;
        margin: 0;
        position: absolute;
        right: 2px;
        top: 4px;
    }

    div.toc-box > div.progress-container {
        border-top: 1px solid #2e862e;
        padding: 4px;
    }

    div.toc-box progress {
        width: 100%;
        height: 4px;
        border: 1px solid #333;
        background-color: #eee;
    }
    div.toc-box progress::-moz-progress-bar {
        background-color: #ad3939;
    }
    div.toc-box progress::-webkit-progress-bar {
        background-color: #eee;
    }
    div.toc-box progress::-webkit-progress-value {
        background-color: #ad3939;
    }

/* POPUPS AND HIDDEN PANELS */
    
/* 
 * enrollment popups 
 * borrowed from answers.css
 */
    
div.popup {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0,0,0,0.8);
    z-index: 99999;
    opacity: 0;
    transition: opacity 200ms ease-in;
    pointer-events: none;
}
div.popup > div, div.popup > pre {
    width: 1200px;
    position: relative;
    margin: 10% auto;
    padding: 10px;
    border-radius: 10px;
    background: #eee;
}


/* 
 * side panel
 */
 
div.side-panel {
    position: fixed;
    top: 4rem;
    left: -768px;
    width: 768px;
    height: 90%;
    transition: transform 0.3s 0s;
    background: #eee;
    z-index: 99998;
    border: 1px solid black;
    border-left: 0px;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
}

div.side-panel.panel--is-visible {
    transform: translateX(100%);
}

div.side-panel > button.side-panel-closer {
    right: 0;
    position: absolute;
    display: block;
    height: 100%;
    width: 40px;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    border-style: none;
    font-weight: bold;
}

div.side-panel > div.panel-container {
    margin: 0px 40px 0px 10px;
    height: 100%;
    overflow-y: scroll; 
}

/*
 * floating attention arrows
 */

div.attention-arrow {
    position: fixed;
    z-index: 99997;
    margin: 0;
    width: 96px;
    height: 96px;
    cursor: pointer;
    animation-duration: 0.25s;
    animation-iteration-count: 20;
    animation-direction: alternate;
}

@keyframes left_nudge {
    from {
        margin-left: 0;
    }
    to {
        margin-left: 10px;
    }
}

div.attention-arrow.left {
    background: no-repeat url("/static/courses/attention-arrow-left.png") center/96px;
    left: 0px;
    transform: translateY(-50%);
    animation-name: left_nudge;
}

@keyframes right_nudge {
    from {
        margin-right: 0;
    }
    to {
        margin-right: 10px;
    }
}

div.attention-arrow.right {
    background: no-repeat url("/static/courses/attention-arrow-right.png") center/96px;
    right: 0px;
    transform: translateY(-50%);
    animation-name: right_nudge;
}

@keyframes up_nudge {
    from {
        margin-top: 0;
    }
    to {
        margin-top: 10px;
    }
}

div.attention-arrow.up {
    background: no-repeat url("/static/courses/attention-arrow-up.png") center/96px;
    top: 4rem;
    transform: translateX(-50%);
    animation-name: up_nudge;
}

@keyframes down_nudge {
    from {
        margin-bottom: 0;
    }
    to {
        margin-bottom: 10px;
    }
}
 
div.attention-arrow.down {
    background: no-repeat url("/static/courses/attention-arrow-down.png") center/96px;
    bottom: 0px;
    transform: translateX(-50%);
    animation-name: down_nudge;
}

 
/* 
 * term display
 */

    
div.term-descriptions {
    width: 100%;
    z-index: 3;
    font-family: "LatoWeb", "DejaVu Sans", "Verdana", "Ubuntu", "Arial", sans-serif;
    font-size: 1.0em;
    color: #222;
    line-height: 1.5;
    word-wrap: break-word;
    position: fixed;
}
    
/* MAIN CONTENT */
section.content {
    position: relative;
    top: 4rem;
    background: #eee;
    box-shadow: 0 0 2em rgba(0, 0, 0, 0.4);
    margin-left: auto;
    margin-right: auto;
    margin-top: 0;
    font-family: "LatoWeb", "DejaVu Sans", "Verdana", "Ubuntu", "Arial", sans-serif;
    font-size: 1.3em;
    color: #333;
    line-height: 1.5;
    padding: 1em 40px 3em 120px;
    min-height: calc(100% - 4rem); /* Header 6em, breadcrumbs 2em, footer 3em*/
    word-wrap: break-word;
}

    div.revision-info {
        position: relative;
        border: 2px dashed #f66;
        background: #fe9;
        color: #922;
        font-size: 1.25rem;
        font-weight: bold;
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
        top: -1rem;
        padding-left: 120px;
        left: -120px;
        width: 1000px;
    }

    div.revision-info-embedded { /* TODO: sync with revision-info in .scss transition */
        position: relative;
        border: 2px dashed #f66;
        background: #fe9;
        color: #922;
        font-size: 0.9rem;
        font-weight: bold;
        padding-top: 0.25rem;
        padding-bottom: 0.25rem;
        top: -12px;
        padding-left: 12px;
        margin: 0;
        left: -12px; /* get from embedded page margin */
        width: 848px; /* get from embedded page width */
    }

    div.course-contents {
        border: 1px solid #ccc;
        background: #cec;
        padding: 4px;
        margin-bottom: 1em;
        border-radius: 4px;
    }

    div.course-contents ul {
        padding-bottom: 0.75em !important;
    }

    div.course-contents li {
        position: relative;
        margin-bottom: 4px !important;
        border: 0;
        border-top: 1px solid transparent;
        border-image: linear-gradient(to right, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.04), rgba(31, 31, 31, 0.2)) 1 stretch;
        list-style-type: none;
    }

    div.course-contents li.admin-visible-content {
        background: #ccc0ee;
        position: relative;
    }
    div.course-contents li.admin-visible-content::after {
        position: absolute;
        top: 2px;
        right: 24px;
        content: 'invisible to students';
        font-size: 0.55rem;
        color: #333;
    }
    div.course-contents li.enroll-locked-content {
        list-style-image: url("/static/courses/lock-16.png");
    }

    div.course-contents progress.course-contents-progress {
        -moz-appearance: none;
        -webkit-appearance: none;
        position: absolute;
        right: 24px;
        top: 0.35em;
        width: 220px;
        height: 8px;
        border: 1px solid #ccc;
        background-color: #eee;
    }

    div.course-contents div.node-score {
        position: absolute;
        right: 24px;
        bottom: 0.01em;
        font-size: 0.75rem;

    }

    div.course-contents div.node-deadline {
        position: absolute;
        right: 144px;
        bottom: 0.01em;
        font-size: 0.75rem;

    }



    div.course-contents progress.course-contents-progress[value] {
        -webkit-appearance: none;
    }
    div.course-contents progress.course-contents-progress::-moz-progress-bar {
        background-color: #39ad39;
    }
    div.course-contents progress.course-contents-progress::-webkit-progress-bar {
        background-color: #eee;
    }
    div.course-contents progress.course-contents-progress::-webkit-progress-value {
        background-color: #39ad39;
    }

    div.course-contents img.course-contents-result {
        position: absolute;
        right: 24px;
        top: 10px;
    }

    section.content h1, section.content h2, section.content h3, section.content h4, section.content h5, section.content h6 {
        font-family: "LatoWebSemibold", "Trebuchet MS", "Helvetica", sans-serif;
        /*font-weight: normal;*/
        /*letter-spacing: 0.05em;*/
        word-spacing: 0.1em;
    }

    section.content span.anchor-offset {
        width: 0;
        height: 0;
        padding-top: 4rem;
        margin-top: -4rem;
        visibility: hidden;
    }

    section.content h1:first-child, section.content h2:first-child, section.content h3:first-child, section.content h4:first-child, section.content h5:first-child, section.content h6:first-child, .task-meta-container + h1, .task-meta-container + h2, .task-meta-container + h3, .task-meta-container + h4, .task-meta-container + h5, .task-meta-container + h6 {
        margin-top: 0 !important;
    }

    section.content h1 {
        margin-top: 1em;
        font-size: 1.8em;
        font-variant: small-caps;
        word-spacing: 0.2em;
        padding-bottom: 2px;
        border-bottom: 1px solid #888;
        margin-bottom: 1em;
        text-shadow: rgba(63, 63, 63, 0.5) 1px 1px 1px;
    }
    section.content h2 {
        font-size: 1.5em;
        margin-top: 1em;
        margin-bottom: 0.5em;
        text-shadow: rgba(63, 63, 63, 0.5) 1px 1px 1px;
        font-weight: bold;
    }
    section.content h3 {
        font-size: 1.25em;
        margin-top: 1em;
        margin-bottom: 0.0em;
        text-shadow: rgba(63, 63, 63, 0.5) 1px 1px 1px;
    }
    section.content h4 {
        font-size: 1.2em;
        letter-spacing: 0.03em;
        word-spacing: 0.07em;
        margin-bottom: 0.0em;
        font-weight: bold;
    }
    section.content h5 {
        font-size: 1.1em;
        margin-bottom: 0.0em;
    }
    section.content h6 {
        font-size: 1.0em;
        margin-bottom: 0.0em;
        font-weight: bold;
    }

    figure {
        margin-top: 0.5em;
        margin-left: 0;
        margin-bottom: 1em;
        display: table;
        width: 1px;
    }
    
    img.content-img {
        margin-top: 0.5em;
        margin-left: 0;
        margin-bottom: 1em;
        display: block;
    }
    img.figure-img {
        display: block;
    }

    figcaption {
        display: table-caption;
        caption-side: bottom;
    }

    .centered-block-outer {
        overflow: hidden;
        position: relative;
    }
    .centered-block-middle {
        float: left;
        position: relative;
        left: 50%;
    }
    .centered-block-inner {
        position: relative;
        left: -50%;
    }

    section.content hr {
        margin-bottom: 1em;
        border: 0;
        height: 1px;
        background: #666;
        background-image: -moz-linear-gradient(left, #999, #666, #999);
    }

    section.content div.paragraph {
        margin-bottom: 1.5em;
    }
    
    section.content div.normal {
        margin-bottom: 15px;
        margin-right: 15px;
    }

    section.content div.paragraph+ul, section.content div.paragraph+ol {
        position: relative;
        top: -.75em;
    }
    section.content ul, section.content ol {
        margin-left: 1.5em;
        margin-bottom: 1.5em;
    }

    section.content ul > li, section.content ol > li {
        margin-left: 0;
        margin-bottom: .5em;
        padding-left: 5px;
    }

    section.content ul > ul, section.content ul > ol, section.content ol > ol, section.content ol > ul {
        margin-left: 3em;
        margin-bottom: 0;
    }

    section.content div.tex {
        margin-left: 8em;
    }

    section.content table {
        border-collapse: collapse;
        margin-bottom: 1em;
    }

    section.content table.full-width {
        table-layout: fixed;
        width: 100%
    }
    
    /*section.content table thead tr, section.content table tbody tr:last-child {
        border-bottom: 1px solid;
    }*/

    section.content table.content-table tr:first-child {
    }

    section.content table tr.section-header {
        background: #caeaca;
        border: 2px solid #d0d0d0;
    } 
    
    section.content table th, section.content table td {
        border: none;
        padding: 2px 4px 2px 4px;
        text-align: left;
    }
    
    section.content table td.actions-cell {
        text-align: right;
    }
    
    section.content table td.grey-bg {
        background: #e2e2e2;        
    }

        section.content div.paragraph > code, section.content td > code,
        section.content div.question code,
        section.content li > code, section.content form > code,
        section.content mark > code {
            font-family: "Inconsolata", "Lucida Console", "DejaVu Sans Mono", monospace;
            background: #e2e2e2;
            font-size: 1em;
            padding: 1px 3px;
            border: 1px solid #cacaca;
            border-radius: 3px;
            box-shadow: inset 0 0 5px #cacaca;
            white-space: nowrap;
        }

        section.content div.question pre code {
            white-space: pre;
            border: none;
            box-shadow: none;
        }

        section.content * a {
            padding: 0 1px;
            margin-left: -1px;
            margin-right: -1px;
            color: #143a14;
        }
        section.content * a:visited {
            color: #ad3939;
        }
        section.content * a:hover {
            color: #222;
            background-color: #59cd59;
            border-radius: 3px;
        }

        section.content mark {
            background: #59cd59;
            border-radius: 7px;
            padding: 2px 4px;
            color: inherit;
        }
        section.content mark.hint-inactive {
            background: transparent;
            border-radius: 7px;
            border: 2px solid transparent;
            padding: 7px 2px;
            margin: -7px -4px;
        }
        section.content mark.hint-active {
            background: #338;
            color: #eee;
            border-radius: 7px;
            /*border: 2px dashed #88f;*/
            padding: 7px 2px;
            margin: -7px -4px;
            animation: hint_background 1s linear 5 alternate;
        }
        @keyframes hint_background {
            0% {background: transparent;}
            100% {background: #338;}
        }

        section.content kbd { /* .key */
            padding: 4px 3px;
            margin-right: 1px;
            border: 1px solid #c6c6c6;
            border-radius: 3px;
            box-shadow: 1px 1px 1px rgba(127, 127, 127, 0.2), inset 0 0 6px #fff;
            background: #eee;
        }

	section.content form.feedback {
	}

        section.content div.question {
            margin-bottom: 0px;
        }

        section.content form.task {
	    width: 100%;
        }

	section.content pre.normal {
        font-family: "Inconsolata", "Lucida Console", "DejaVu Sans Mono", monospace;
        background: #e2e2e2;
        font-size: 1.2rem;
        padding: 2px 4px;
        border: 1px solid #cacaca;
        border-radius: 3px;
        box-shadow: inset 0 0 3px #cacaca;
        line-height: 1.15;
        
        white-space: pre;
        overflow-x: auto;
        width: auto;
        margin-bottom: 1em;
	}

        section.content pre.normal code {
            font-family: inherit;
        }
        
        section.content div.embedded-page {
            position: relative;
            left: -120px;
            /*border-color: #d0d0d0;
            border-style: solid;
            border-width: 2px 0;
            border: 0;*/
            width: 1160px;
            background: #caeaca;
            padding: 1em 40px 2em 120px;
            /*padding-left: 120px;*/
            margin-bottom: 1em;
            min-height: 300px;
        }

        section.content div.question {
            /*margin-bottom: 2em;*/
        }

        section.content div.question form {
            position: relative;
            margin-top: 5px;
            padding: 9px;
            border: 2px solid #d0d0d0;
            background: #daeeda;
        }

            section.content div.question form input[type=file], section.content div.question form input[type=submit] {
                font-family: "LatoWeb";
                font-size: 0.9em;
                min-width: 170px;
                line-height: 1.35;
                margin: 6px 0 0 0;
            }

            section.content div.question form div.input-label-container {
                display: block;
                vertical-align: bottom;
            }

            section.content div.question form div.code-replace {
                margin-top: -5px;
            }
            
            section.content div.question form div.code-replace-filename {
                font-family: "Inconsolata", "Lucida Console", "DejaVu Sans Mono", monospace;
                font-size: 1.2rem;
                display: block;
            }

            section.content div.question form label.code-replace-label {
                font-family: "Inconsolata", "Lucida Console", "DejaVu Sans Mono", monospace;
                font-size: 1.2rem;
                width: 44px;
                text-align: right;
                display: inline-block;
                background: #bbb;
                border: 1px solid #d0d0d0;
                margin: 0;
                margin-right: -6px;
                padding-right: 4px;
                line-height: 1.25 !important;
            }

            section.content div.question form input.code-replace-input {
                font-family: "Inconsolata", "Lucida Console", "DejaVu Sans Mono", monospace;
                font-size: 1.2rem;
                display: inline-block !important;
                width: calc(100% - 58px);
                border: 1px solid #d0d0d0;
                background: #eee;
                line-height: 1.25 !important;
            }

            section.content div.question form label {
                margin-left: 0.5em;
                line-height: 1.75;
                display: inline;
                vertical-align: middle;
            }

            section.content div.question form div.input-label-container > input {
                display: inline;
                vertical-align: middle;
            }

            section.content div.question form label.file {
                margin: 0;
                display: inline-block;
                clear: both;
                width: 220px;
            }

            section.content div.question form input.task_file {
                clear: both;
            }

            textarea.generic-textfield,
            section.content div.question form > textarea {
                width: 100%;
                border: 2px solid #ddd;
                padding: 2px;
                resize: vertical;
                background: #f5f5f5;
                font-family: "Inconsolata", "Lucida Console", "DejaVu Sans Mono", monospace;
                font-size: 1.2rem;
            }

            section.content div.question form div.answered-status {
                display: inline;
            }

            div.answered-status span.correct {
                color: #3a3;
            }
            div.answered-status span.incorrect {
                color: #a33;
            }
            
            /* repeated template exercise */
            
            section.content button.rt-interaction {
                font-family: "LatoWeb";
                font-size: 0.9em;
                min-width: 170px;
                line-height: 1.35;
                margin: 6px 0 6px 0;    
            }
            
            section.content span.rt-progress-tag {
                background: #9c9;
                padding: 6px;
                border-radius: 4px;
            }
            

        section.content div.auth-warning {
            font-weight: bold;
            color: #f33;
        }

        section.content div.markup-error {
            font-weight: bold;
            color: red;
            border: 2px dashed red;
            padding: 4px 8px;
            margin-bottom: 1rem;
        }

        section.content div.results-box {
            position: relative;
            margin-top: 4px;
            padding: 9px;
            border: 2px solid #d0d0d0;
            background: #daeeda;            
        }
        section.content div.results-box > span.results-header {
            display: block;
            font-weight: bold;
        }
        section.content div.results-box.hints,
        section.content div.results-box.msgs {
            padding-bottom: 0;
        }
        section.content div.results-box.hints > div.hints-list,
        section.content div.results-box.msgs > div.msgs-list {
            position: relative;
            margin: 0;
            padding: 0;
        }
        section.content div.results-box.hints > div.hints-list > ul,
        section.content div.results-box.msgs > div.msgs-list > ul {
            list-style-type: none;
            position: relative;
            margin: 0;
            padding: 0;
            left: -11px;
            width: 1000px;
        }
        section.content div.results-box.hints > div.hints-list > ul > li,
        section.content div.results-box.msgs > div.msgs-list > ul > li {
            margin: 0;
            padding: 5px 11px;
            border-top: 2px solid #ccc;
        }
        section.content div.results-box.hints > div.hints-list > ul > li > *:last-child,
        section.content div.results-box.msgs > div.msgs-list > ul > li > *:last-child {
            margin-bottom: 0;
            padding-bottom: 0;
        }

        section.content div.error {
            color: #f00;
            background: #eedada;
        }

        section.content div.result {

        }

        section.content pre {
            width: auto;
        }

        section.content div#result div.hintbox {
            
        }

        section.content div#result div.test {
            padding: 9px;
            border: 2px solid rgb(224,224,224);
            background: #e7ffe7;
        }            

        section.content div#result h_1 {
            font-size: 20px;
            margin-top: 16px;
            /*border-top: 1px solid grey;*/
        }
        section.content div#result h_2 {
            margin-top: 8px;
            font-size: 18px;
        }
        section.content div#result h_3 {
            font-size: 16px;
        }
        section.content div#result h3 span.command {
            white-space: pre;
            font-family: "Inconsolata", "Lucida Console", "DejaVu Sans Mono", monospace;
        }

        /* The file upload exercise evaluation tabs */
        div.file-evaluation-widget {
            width: 100%;
            background: #ddd;
        }
        div.test-tab-selector-box {
            color: #ccc;
            background: #daeeda;
        }
        div.test-tab-selector {
            display: inline-block;
            border: 2px solid #d0d0d0;
            border-radius: 2px 20px 0 0/2px 8px 0 0;
            cursor: pointer;
            padding: 0 2px;
        }
        div.correct-test {
            background: #143a14;
        }
        div.incorrect-test {
            background: #3a1414;
        }
        div.test-tab-selector img {
            right: 2px;
            top: 4px;
            padding: 1px;
            margin-left: 4px;
            position: relative;
            border: 1px dotted #aaa;
            border-radius: 3px;
        }
        div.correct-test img {
            background: #69cd69;
        }
        div.incorrect-test img {
            background: #cd6969;
        }

        /* The file upload exercise items */
        /* Stage */
        div.test-evaluation-stage {
            border-bottom: 2px solid #aaa;
            padding-bottom: 1rem;
        }
        div.test-evaluation-stage:last-child {
            border-bottom: 0;
            padding-bottom: 0;
        }
        div.test-evaluation-stage-name {
            font-weight: normal;
            text-shadow: 0px 0px 4px rgba(63, 63, 63, 0.5);
            border-bottom: 1px solid rgba(191, 191, 191, 0.5);
            padding: 4px 4px 4px 8px;
            font-size: 1.1rem;
            background: #cacaca;
        }
        div.test-evaluation-stage-fail {
            background: #eccaca;
        }
        /* Command */
        div.test-evaluation-heading {
            padding: 2px 2px 2px 4px;
            font-size: 1.0rem;
            text-decoration: underline;
        }
        pre.test-evaluation-cmdline {
            padding: 2px 2px 2px 4px;
            margin: 0 6px 6px 6px;
            font-size: 1.0em;
            font-family: "Inconsolata", "Lucida Console", "DejaVu Sans Mono", monospace;
            background: #d0d0d0;
        }
        div.test-evaluation-msg {
            font-size: 0.8em;
            padding: 0 2px 0 2px;
            margin: -8px 6px 6px 6px;
            background: #d7d7d7;
            color: #555;
            position: relative;
        }
        
        /* Evaluation message log items */
        div.evaluation-msg-title {
            font-weight: bold;
            background: #ddd;
        }
        div.evaluation-msg-title div.paragraph,
        div.evaluation-run div.paragraph {
            margin-bottom: 0;
        }
        
        div.evaluation-run {
            border: 2px solid #aaa;
        }
        
        div.evaluation-run li {
        }
        
        li.evaluation-msg-incorrect {
            list-style-image: url("incorrect-16.png");
        }
        li.evaluation-msg-correct {
            list-style-image: url("correct-16.png");
        }
        li.evaluation-msg-info {
            list-style-image: url("info-16.png");
        }
        li.evaluation-msg-error {
            list-style-image: url("error-16.png");
            
        }
        li.evaluation-msg-debug {
            list-style-image: url("debug-16.png");
        }
        li.evaluation-msg-lint-conv {
            list-style-image: url("lint-conv-16.png");
        }
        li.evaluation-msg-lint-refact {
            list-style-image: url("lint-refact-alt-16.png");
        }
        li.evaluation-msg-lint-warn {
            list-style-image: url("lint-warn-16.png");
        }
        li.evaluation-msg-lint-error {
            list-style-image: url("lint-error-16.png");
        }
        
        li.evaluation-li-hidden {
            display: none;
        }
        
        li.evaluation-li-visible {
            display: list-item;
        }
        
        div.evaluation-run-open {
            background: #daeeda; 
        }
        
        div.evaluation-run-closed {
            background: #caeeca;
        }        
        
        div.test-evaluation-msg-attention:after {
            content: "!";
            color: #eee;
            background: #d33;
            position: absolute;
            font-family: "Inconsolata", "Lucida Console", "DejaVu Sans Mono", monospace;
            font-size: 0.7em;
            font-weight: bold;
            right: 0;
            top: 0;
            margin: 2px 0 2px 0;
            padding: 0 3px 0 3px;
        }
        span.retval {
            font-family: "Inconsolata", "Lucida Console", "DejaVu Sans Mono", monospace;
        }
        span.retval-correct {
            color: #2e862e;
        }
        span.retval-incorrect {
            color: #862e2e;
        }
        span.cmd-runtime {
            
        }
        div.term-container {
            position: relative;
            margin: 0;
            padding: 0;
            display: inline;
        }
        span.term {
            cursor: help;
            border-bottom: 2px dashed #000;
            text-decoration: none;
            position: relative;
        }
        
        pre.test-evaluation-inputs {
            padding: 2px 2px 2px 4px;
            margin: 0 6px 6px 6px;
            font-size: 1.0em;
            font-family: "Inconsolata", "Lucida Console", "DejaVu Sans Mono", monospace;
            background: #d0d0d0;
        }

        /* The file upload exercise difference table */

        section.content table.diff {
            table-layout: fixed;
            width: 100%;
            color: #222;
        }

        section.content table.diff col.line-number {
            width: 1.2rem;
            background: #ccc;
        }
        section.content table.diff colgroup.student,
        section.content table.diff colgroup.reference {
            width: 50%;
        }

        section.content table.diff th {
            background: #ccc;
            line-height: 1.25;
            font-weight: normal;
            border: 1px solid #aaa;
            text-decoration: underline;
        }

        section.content table.diff td {
            white-space: pre-wrap;
            overflow-x: hidden;
            word-wrap: break-word;
            font-weight: normal;
            font-family: "Inconsolata", "Lucida Console", "DejaVu Sans Mono", monospace;
            font-size: 1.0rem;
            padding: 0 1px;
            line-height: 1.25;
            height: 1rem;
            border: 1px solid #aaa;
        }
        section.content table.diff td.diff-linenum {
            font-size: 0.8rem;
            text-align: right;
        }

        section.content table.diff span.diff-sub {
            background: #cd6969;
        }

        section.content table.diff span.diff-chg {
            background: #6969cd;
        }

        section.content table.diff span.diff-add {
            background: #69cd69;
        }

        /* Calendar */
        div.calendar {
            width: 50%;
        }
        div.calendar-date-container {
            margin-top: 10px;
            background: #e7e7e7;
            border-radius: 8px;
            padding: 4px;
        }
        div.calendar-disclaimer {
            border: 2px solid #f66;
            background: #fe9;
            color: #922;
            padding: 4px;
        }

        div.calendar-date-heading {
            font-weight: bold;
            background: linear-gradient(to bottom, #9c9, #8b8);
            border-radius: 4px;
            padding-left: 4px;
        }

        div.calendar fieldset {
            padding: 8px;
            border: 0px;
        }
        div.calendar legend {
            font-size: 1.0rem;
            font-weight: bold;
            margin: 0 0 0 25px;
        }
        div.calendar fieldset > div {
            padding: 0 2px;
        }
        div.calendar div.datetime {
            background: #caeeca;
            border: 1px solid #888;
            /*background: #d7d7d7;*/
        }
        
        div.calendar div.datetime.event-full {
            border: 1px solid #888;
            background: #d7d7d7;
        }
        
        div.calendar div.description {
            background: #e0e0e0;
            font-style: italic;
            padding: 4px 12px;
        }
        div.calendar li {
            font-size: 0.8rem;
            list-style-type: square;
            background: #e0e0e0;
        }
        
        div.calendar table tr {
            border: none !important;
        }
        
        div.calendar div.reservation-result {
            border: 1px solid #888;
            background: #f0f099;
        }
        div.calendar input[type=submit] {
            font-family: "LatoWeb", "DejaVu Sans", sans-serif;
            font-size: 0.9em;
            min-width: 150px;
            line-height: 1.5;
        }

    section.content a.permalink {
        position: relative;
        top: -1px;
        font-size: 0.8em;
        text-shadow: none;
        text-decoration: none;
        padding: 2px 4px;
        margin-left: 4px;
        color: transparent;
    }
    section.content a.permalink:hover {
        color: #39ad39;
        background-color: transparent;
    }

    section.content div.task-meta-container {
        position: relative;
        width: 0;
        font-size: 0.6rem;
        padding: 0;
    }

    /* All task-metas, including those from embedded exercises */
    section.content div.task-meta {
        position: absolute;
        width: 120px;
        left: -120px;
        top: -10px;          /* -1x padding as in embedded-page */
        padding: 20px 0 0 0; /* 2x padding as in embedded-page */
        text-align: center;
    }

    /* The first task-meta on a page */
    section.content > div.task-meta-container > div.task-meta {
        top: 0;
    }
    
    section.content div.task-meta hr {
        margin: 8px 16px;
        height: 1px;
        border: 0;
        background: rgba(95, 95, 95, 0.85);
        box-shadow: 0 0 0 2px rgba(95, 95, 95, 0.15);
    }

    section.content div.task-meta > div.admin-tools {

        /*background: #e5e5e5;*/
    }

        section.content div.admin-tools ul {
            margin: 0 0 0 12px;
            padding: 0;
        }

        section.content div.admin-tools li {
            font-size: 0.6rem;
            line-height: 1.3;
            padding: 0;
            margin: 0;
            text-align: left;
            list-style-type: square;
        }
        
/* AJAX form stuff */

span.ajax-form-error {
    color: #a33;
}
    

/* Borrowed from exerciseadmin.css */
        
a.file-url {
    display: inline-block;
    background: url("download.png");
    width: 25px;
    height: 25px;
    outline: 0;
    vertical-align: top;
    overflow: hidden;
    color: #4CAF50;
    background-color: #fff;
    text-align: center;
    cursor: pointer;
    border: 0px solid #42860e;
    border-radius: 8px;
    box-shadow: 1px 1px 2px #285c00;
}
        
        
/* FOOTER */
footer {
    font-family: "LatoWeb", "DejaVu Sans", "Verdana", sans-serif;
    font-size: 0.9rem;
    color: #111;
    background-image: url("noise-200x200-1.png");
    background-color: #39ad39;
    position: relative;
    bottom: 0;
    height: 3rem;
    margin-top: 1rem;
    width: 100%;
    padding: 6px;
}

    footer div {
	padding-right: 60px;
	float: left;
    }

/* routine exercise stuff */    
    
td.routine-meta {
    background: #ddd;
}

/* editing stuff */

a.button-style {
    appearance: button;
    text-decoration: none;
    display: inline-block;
    width: 25px;
    height: 25px;
    outline: 0;
    vertical-align: middle;
    overflow: hidden;
    background-color: #fff;
    text-align: center;
    cursor: pointer;
    border: 0px solid #42860e;
    border-radius: 8px;
    box-shadow: 1px 1px 2px #285c00;
    margin: 0px 5px 0px 5px !important;
}

button.staff-base-button {
    width: 25px;
    height: 25px;
    outline: 0;
    vertical-align: middle;
    overflow: hidden;
    background-color: #fff;
    text-align: center;
    cursor: pointer;
    border: 0px solid #42860e;
    border-radius: 8px;
    box-shadow: 1px 1px 2px #285c00;
    margin: 0px 5px 0px 5px;
}

div.staff-panel, .side-panel-form {
    background: #cec;
    border-radius: 8px;
    margin: 5px 0px;
    padding: 5px 0px;
    border: 2px solid #d0d0d0;
}

div.expand-handle {
    cursor: pointer;
    background-color: #caeaca;
    border: 2px solid #d0d0d0;
    border-radius: 8px;
    box-shadow: 1px 1px 2px #285c00;
    margin: 5px 5px 5px 0px;
    padding-left: 2px;
}

.add-button {
    color: #4CAF50;
}

.delete-button {
    color: #ff0000;
    box-shadow: 1px 1px 2px #ff2000;
}

.link-button {
    background: no-repeat url("/static/courses/link.png") center/18px,
                #fff;
}
   
.unlink-button {
    background: no-repeat url("/static/courses/unlink.png") center/18px,
                #fff;
    color: #ff0000;
    box-shadow: 1px 1px 2px #ff2000;
}

.settings-button {
    background: no-repeat url("/static/courses/settings.png") center/18px,
                #fff;
}

.move-button {
    background: no-repeat url("/static/courses/move.png") center/18px,
                #fff;
}

.freeze-button {
    background: no-repeat url("/static/courses/freeze.png") center/18px,
                #fff;
}

.view-button {
    background: no-repeat url("/static/courses/eye-16.png") center/16px,
                #fff;
}


.copy-button {
    background: no-repeat url("/static/courses/copy.png") center/18px,
                #fff;
}
    
.edit-button {
    background: no-repeat url("/static/courses/edit_icon_pencil.svg") center/18px,
                #fff;
}

.ok-button {
    background: no-repeat url("/static/courses/correct-16.png") center/16px,
                #fff;
}    

.mail-button {
    background: no-repeat url("/static/courses/mail.png") center/18px,
                #fff;
}

.inspect-button {
    background: no-repeat url("/static/courses/debug-16.png") center/16px,
                #fff;
}

.log-button {
    background: no-repeat url("/static/courses/log.png") center/18px,
                #fff;
}

.report-button {
    background: no-repeat url("/static/courses/assessment.png") center/18px,
                #fff;
}

.clipboard-button {
    background: no-repeat url("/static/courses/copy.png") center/18px,
                #fff;
}

.grades-button {
    background: no-repeat url("/static/courses/grading.png") center/18px,
                #fff;
}

.refresh-button {
    background: no-repeat url("/static/courses/ongoing-16.png") center/16px,
                #fff;
}

.termify-button {
    background: no-repeat url("/static/courses/termify-16.png") center/16px,
                #fff;
}

.certainty-button {
    background: no-repeat url("/static/courses/certain-toggle-16.png") center/16px,
                #fff;
}

.export-button {
    background: no-repeat url("/static/courses/export-16.png") center/16px,
                #fff;
}

.import-button {
    background: no-repeat url("/static/courses/import-16.png") center/16px,
                #fff;
}


div.task-meta-score {
    display: block;
    font-size: 1.2em;

}

span.confirm-tag {
    visibility: hidden;
}

span.light-text {
    color: #b7b7b7;
}

.tag--is-visible {
    visibility: visible;
}

hr.hr-evenly-spaced {
    margin-top: 1em;
    margin-bottom: 1em;
}

.heading-widget {
    float: right;
    margin-top: -1em;   
}

.right-float {
    float: right;
}

table.fixed {
    table-layout: fixed;
    width: 100%;
}
table.alternate-green > tbody > tr:nth-child(odd) {
    background: #daeeda;
}

table.alternate-green > tbody > tr:nth-child(even) {
    background: #eee;
}

div.enroll-widget {
    font-size: 0.8em;
}

div.sub-header-container {
    margin-bottom: 1em;
    margin-top: -1.8em;
}

div.index-course-header {
    cursor: pointer;
}

.content-edit-button {
    left: -60px;
}

svg, iframe {
    display: block;
}

.edit-highlight {
    border: dashed black;
}

.sub-rectangle {
    border: 2px solid #d0d0d0;
    background: #daeeda;
    margin: 2px;
}

.interactive {
    cursor: pointer
}

div.message-box {
    position: fixed;
    top: 100px;
    background: #daeeda;
    border-radius: 10px;
    border: 4px ridge #cacaca;
    left: 50%;
    transform: translateX(-50%);
    z-index: 100;
}

div.message-box-header {
    font-size: 1.2em;
    text-decoration: underline;
}

span.popup-button {
    float: right;
    margin-right: 5px;
    border-radius: 5px;
    color: #9a9a9a;
}

div.message-container {
    width: 900px;
    text-align: center;
    font-size: 1.0em;
    z-index: 101;
}

div.item-header {
    background: #caeaca;
    border: 1px solid #d0d0d0;
    border-radius: 2px;
}

div.item-header > span {
    margin-left: 5px;
}

div.item-container {
    margin-left: 10px;
}

div.user-menu-arrow {
    background: no-repeat url("/static/courses/arrow-down.png") center/40px;
    width: 40px;
    height: 40px;
}

span.attention-icon {
    border-radius: 2px;
    background: #f93c3c;
    min-width: 15px;
    text-align: center;
    display: inline-block;
}

div.user-menu-separator {
    padding: 4px 2px 4px 2px;
    height: 1px;
    position: relative;
}

div.user-menu-separator hr {
    color: #cacaca;
}

tr.edit-form-error-tr {
    color: #a33;
}
