* {
    margin: 0;
    padding: 0;
}

html,
body {
    height: 100%;
    font-size: 16px;
    line-height: 1.6;
}

/**
 * Typography
 */

body {
    background: white;
    color: black;
    font-family: "NotoSans-SemiCondensed", sans-serif;
    font-size: 0.75rem;

    b,
    strong {
        font-family: "NotoSans-SemiCondensedBold", sans-serif;
        font-weight: normal;
    }

    i,
    em {
        font-family: "NotoSans-SemiCondensedItalic", sans-serif;
        font-style: normal;
    }
}

/* Text elements */
a {
    color: black;
    text-decoration: underline;

    &:hover {
        color: #01579b;
        text-decoration: none;
    }
}

p {
    margin: 1em 0;
}

ul {
    margin-left: 2rem;

    &.p li {
        margin-bottom: 1rem;
    }
}

h2 {
    text-align: center;
    margin-bottom: 1rem;
}

/**
 * Inputs
 */

input[type="text"],
input[type="password"],
input[type="email"] {
    color: black;
    background-color: white;
    padding: 0 0 0 6px;
    font: 500 14px/29px "NotoSans-SemiCondensed", sans-serif;
    width: 100%;
    box-sizing: border-box;

    &:valid,
    &:valid {
        border-style: none;
    }

    &:invalid,
    &:invalid {
        border: none;
        border-right: 2px solid red;
    }
}

#loginform > table,
#recoverform > div > table {
    border-spacing: 1px;
}

#loginform #username,
#recoverform #new_pass_1 {
    border-radius: 5px 5px 0 0;
}

#loginform input[type="submit"],
#recoverform input[type="submit"],
input[type="submit"] {
    width: 100%;
    background-color: #81d4fa;
    font: 500 14px/29px "NotoSans-SemiCondensed", sans-serif;
    border: none;
    border-radius: 0 0 5px 5px;
    cursor: pointer;
}

#loginform input[type="submit"]:hover,
#recoverform input[type="submit"]:hover,
input[type="submit"]:hover {
    background-color: #e1f5fe;
}

#recoverform .layout td:first-child {
    width: 100%;
    text-align: right;
    padding-right: 5px;
}

/**
 * Layout
 */

header,
footer {
    height: 2rem;
    line-height: 2rem;
    width: 100%;
    background: #01579b;
    position: fixed;
    left: 0;

    a {
        color: white;
        text-decoration: none;
        margin: 0 0.5rem;

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

header {
    top: 0;
    text-align: right;
}

footer {
    bottom: 0;
    text-align: center;
}

main {
    width: 250px;
    height: calc(80% - 60px);
    margin: 0 auto;
    padding: 10% 0;
}

#logo {
    width: 250px;
    height: 50px;
    background-image: url("/static/common/logos/bookish.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    margin: 1em 0;
}

/**
 * Classes
 */

.center {
    text-align: center;
    vertical-align: middle;
}

.hidden {
    display: none;
}

.mouseless {
    cursor: default;
}

.notice {
    width: 250px;
}

.info {
    color: green;
    font-family: "NotoSans-SemiCondensedBold", sans-serif;
}

.error {
    color: red;
    font-family: "NotoSans-SemiCondensedBold", sans-serif;
}

/* Legal */
.tldr {
    width: 200%;
    height: 500px;
    margin-left: -50%;
    overflow-y: scroll;
}

#logo::after {
    content: "℠";
    font-size: 0.75rem;
    font-weight: normal;
    margin-left: 100%;
}
