/* Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 */
/* For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt */

// CSS styles for coverage.py HTML reports.

// When you edit this file, you need to run "make css" to get the CSS file
// generated, and then check in both the .scss and the .css files.

// Ignore this comment, it's for the CSS output file:
/* Don't edit this .css file. Edit the .scss file instead! */

// Page-wide styles
html, body, h1, h2, h3, p, table, td, th {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-weight: inherit;
    font-style: inherit;
    font-size: 100%;
    font-family: inherit;
    vertical-align: baseline;
}

// Set baseline grid to 16 pt.
body {
    font-family: georgia, serif;
    font-size: 1em;
}

html>body {
    font-size: 16px;
}

// Set base font size to 12/16
p {
    font-size: .75em;           // 12/16
    line-height: 1.33333333em;  // 16/12
}

table {
    border-collapse: collapse;
}
td {
    vertical-align: top;
}
table tr.hidden {
    display: none !important;
}

p#no_rows {
    display: none;
    font-size: 1.2em;
}

a.nav {
    text-decoration: none;
    color: inherit;

    &:hover {
        text-decoration: underline;
        color: inherit;
    }
}

// Page structure
#header {
    background: #f8f8f8;
    width: 100%;
    border-bottom: 1px solid #eee;
}

#source {
    padding: 1em;
    font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
}

.indexfile #footer {
    margin: 1em 3em;
}

.pyfile #footer {
    margin: 1em 1em;
}

#footer .content {
    padding: 0;
    font-size: 85%;
    font-family: verdana, sans-serif;
    color: #666666;
    font-style: italic;
}

#index {
    margin: 1em 0 0 3em;
}

/* Header styles */
#header .content {
    padding: 1em 3em;
}

h1 {
    font-size: 1.25em;
    display: inline-block;
}

#filter_container {
    display: inline-block;
    float: right;
    margin: 0 2em 0 0;

    input {
        width: 10em;
    }
}

$pln-color: #ffffff;
$mis-color: #ffdddd;
$run-color: #ddffdd;
$exc-color: #eeeeee;
$par-color: #ffffaa;

$off-button-lighten: 50%;

h2.stats {
    margin-top: .5em;
    font-size: 1em;
}
.stats span {
    border: 1px solid;
    border-radius: .1em;
    padding: .1em .5em;
    margin: 0 .1em;
    cursor: pointer;
    border-color: #ccc #999 #999 #ccc;

    &.run {
        background: mix($run-color, #fff, $off-button-lighten);
        &.show_run {
            border-color: #999 #ccc #ccc #999;
            background: $run-color;
        }
    }
    &.mis {
        background: mix($mis-color, #fff, $off-button-lighten);
        &.show_mis {
            border-color: #999 #ccc #ccc #999;
            background: $mis-color;
        }
    }
    &.exc {
        background: mix($exc-color, #fff, $off-button-lighten);
        &.show_exc {
            border-color: #999 #ccc #ccc #999;
            background: $exc-color;
        }
    }
    &.par {
        background: mix($par-color, #fff, $off-button-lighten);
        &.show_par {
            border-color: #999 #ccc #ccc #999;
            background: $par-color;
        }
    }
}

// Yellow post-it things.
%popup {
    display: none;
    position: absolute;
    z-index: 999;
    background: #ffffcc;
    border: 1px solid #888;
    border-radius: .2em;
    box-shadow: #cccccc .2em .2em .2em;
    color: #333;
    padding: .25em .5em;
}

// Yellow post-it's in the text listings.
%in-text-popup {
    @extend %popup;
    white-space: normal;
    float: right;
    top: 1.75em;
    right: 1em;
    height: auto;
}

// Help panel
#keyboard_icon {
    float: right;
    margin: 5px;
    cursor: pointer;
}

.help_panel {
    @extend %popup;
    padding: .5em;
    border: 1px solid #883;

    .legend {
        font-style: italic;
        margin-bottom: 1em;
    }

    .indexfile & {
        width: 20em;
        height: 4em;
    }

    .pyfile & {
        width: 16em;
        height: 8em;
    }
}

#panel_icon {
    float: right;
    cursor: pointer;
}

.keyhelp {
    margin: .75em;

    .key {
        border: 1px solid black;
        border-color: #888 #333 #333 #888;
        padding: .1em .35em;
        font-family: monospace;
        font-weight: bold;
        background: #eee;
    }
}

// Source file styles
.linenos p {
    text-align: right;
    margin: 0;
    padding: 0 .5em;
    color: #999999;
    font-family: verdana, sans-serif;

    &.highlight {
        background: #ffdd00;
    }
    a {
        text-decoration: none;
        color: #999999;
        font-size: .8333em;   // 10/12
        line-height: 1em;
        &:hover {
            text-decoration: underline;
            color: #999999;
        }
    }
}

td.text {
    width: 100%;
}

$hover-dark-amt: 95%;
$pln-hover-color: mix($pln-color, #000, $hover-dark-amt);
$mis-hover-color: mix($mis-color, #000, $hover-dark-amt);
$run-hover-color: mix($run-color, #000, $hover-dark-amt);
$exc-hover-color: mix($exc-color, #000, $hover-dark-amt);
$par-hover-color: mix($par-color, #000, $hover-dark-amt);

.text p {
    margin: 0;
    padding: 0 0 0 .5em;
    border-left: 2px solid #ffffff;
    white-space: pre;
    position: relative;

    &:hover {
        background: $pln-hover-color;
    }

    &.run {
        border-left: 2px solid #00ff00;
        &.show_run {
            background: $run-color;

            &:hover {
                background: $run-hover-color;
            }
        }
    }

    &.mis {
        border-left: 2px solid #ff0000;
        &.show_mis {
            background: $mis-color;

            &:hover {
                background: $mis-hover-color;
            }
        }
    }

    &.exc {
        border-left: 2px solid #808080;
        &.show_exc {
            background: $exc-color;

            &:hover {
                background: $exc-hover-color;
            }
        }
    }

    &.par {
        border-left: 2px solid #eeee99;
        &.show_par {
            background: $par-color;

            &:hover {
                background: $par-hover-color;
            }
        }
    }
}


.text {
    span.annotate {
        font-family: georgia;
        color: #666;
        float: right;
        padding-right: .5em;
        display: none;
    }
    p.show_par span.annotate {
        display: inline;
    }
    p.show_par span.annotate.long {
        @extend %in-text-popup;
        max-width: 50%;
        width: 30em;
    }
    p.show_par:hover span.annotate.long {
        display: block;
    }

    // Syntax coloring
    .com {
        color: green;
        font-style: italic;
        line-height: 1px;
    }
    .key {
        font-weight: bold;
        line-height: 1px;
    }
    .str {
        color: #000080;
    }
}

// Line contexts
td.contexts {
    p {
        margin: 0;
        padding: 0 .5em;
        color: #999999;
        font-family: verdana, sans-serif;
        white-space: nowrap;
        position: relative;
        &:hover {
            background: #eee;
        }
        span.context-list {
            @extend %in-text-popup;
            min-width: 30em;

            span.context-line {
                display: block;
            }
        }
        &:hover span.context-list {
            display: block;
        }
        span.context-button {
            display: inline-block;
            cursor: pointer;
            font-size: .8333em;   // 10/12
            line-height: 1em;
        }
    }
}

// index styles
#index {
    td, th {
        text-align: right;
        width: 5em;
        padding: .25em .5em;
        border-bottom: 1px solid #eee;
        &.left {
            padding-left: 0;
        }
        &.right {
            padding-right: 0;
        }
        &.name {
            text-align: left;
            width: auto;
        }
    }
    th {
        font-style: italic;
        color: #333;
        border-bottom: 1px solid #ccc;
        cursor: pointer;
        &:hover {
            background: #eee;
            border-bottom: 1px solid #999;
        }
        &.headerSortDown, &.headerSortUp {
            border-bottom: 1px solid #000;
            white-space: nowrap;
            background: #eee;
        }
        &.headerSortDown:after {
            content: " ↓";
        }
        &.headerSortUp:after {
            content: " ↑";
        }
    }
    td.name a {
        text-decoration: none;
        color: #000;
    }

    tr.total td,
    tr.total_dynamic td {
        font-weight: bold;
        border-top: 1px solid #ccc;
        border-bottom: none;
    }
    tr.file:hover {
        background: #eeeeee;
        td.name {
            text-decoration: underline;
            color: #000;
        }
    }
}

// scroll marker styles
#scroll_marker {
    position: fixed;
    right: 0;
    top: 0;
    width: 16px;
    height: 100%;
    background: white;
    border-left: 1px solid #eee;
    will-change: transform; // for faster scrolling of fixed element in Chrome

    .marker {
        background: #ddd;
        position: absolute;
        min-height: 3px;
        width: 100%;
    }
}
