﻿html,
body {
    height: 100%;
    display: flex;
    flex-direction: column;
    margin: 0;
    background-color: #f9f9f9;
}

body {
    --newgencolor: #2b2b2b;
    --newgencolorfade: #8b8b8b;
    --newgengrey: #d9d9d9;
    --newgensilver: #e6e6e6;
    --newgenwhite: #ffffff;
}

.error {
    margin: 0.3rem 0 0 0;
    padding: 0.3rem 0;
    line-height: normal;
    font-weight: bold;
    color: #ff0000;
    background-color: #ffcccc;
    display: block;
}

.text-danger {
    font-weight: bold;
    color: red;
}

.goback {
    border: solid 1px #999999;
    padding: 0.4rem 0.8rem;
    color: #999999;
    margin-top: 0.2rem;
    font-size: 0.8rem;
}

    .goback:hover {
        color: #000000;
        background-color: #dddddd;
    }

.nomargin {
    margin: 0 !important;
}

.nopadding {
    padding: 0 !important;
}

.noline {
    line-height: unset;
}

.close-button {
    color: #ffffff;
    font-weight: bold;
}

    .close-button.black {
        color: var(--newgengrey);
    }

.formradio {
    margin: 0.5rem 0 0 0;
}

.inlinecheck {
    margin: 0 1rem 0 0;
}

.help-text {
    margin-top: 0;
}

.row .row {
    margin-left: -0.625rem;
    margin-right: -0.625rem;
}

.newgencol {
    background-color: var(--newgencolor) !important;
    border: solid 1px var(--newgencolor);
    color: #ffffff !important;
}

    .newgencol:hover {
        background-color: var(--newgengrey) !important;
        color: var(--newgencolor) !important;
    }

.newgenhighlight {
    color: var(--newgengrey) !important;
}

.pagebox {
    display: flex;
    flex-flow: column;
    height: 100%;
}

.button.mini {
    font-size: 0.6rem !important;
    padding: 0.25em 1em !important;
    margin: 0 0 0 0 !important;
}

.pupilnotesbox {
    position: absolute;
    padding: 3px;
    top: -20px;
    left: -200px;
    width: 200px;
    z-index: 10;
    background-color: white;
    border: solid 1px #000000;
    box-shadow: 3px 3px 4px 0px rgba(0,0,0,0.75), -3px 3px 4px 0px rgba(0,0,0,0.75);
    -webkit-box-shadow: 3px 3px 4px 0px rgba(0,0,0,0.75), -3px 3px 4px 0px rgba(0,0,0,0.75);
    -moz-box-shadow: 3px 3px 4px 0px rgba(0,0,0,0.75), -3px 3px 4px 0px rgba(0,0,0,0.75);
}

    .pupilnotesbox p {
        font-size: 1rem;
        margin: 0;
        padding: 0;
        line-height: normal;
        text-align: left;
    }

header {
    flex: 0 1 20px;
    padding-top: 0.2rem;
    padding-bottom: 0.2rem;
}

    header .row {
        padding-top: 0.5rem;
        padding-bottom: 0.3rem;
    }

    header .usericon {
        padding: 0.25rem 0.5rem;
        font-size: 1.6rem;
        margin-right: 1rem;
        color: #000000;
        border: solid 1px #000000;
        border-radius: 50%;
        background-color: #eeeeee;
    }

    header .headericon {
        font-size: 1.5rem;
    }


nav {
    border-top: solid 1px #999999;
    border-bottom: solid 1px #666666;
    background-color: #d0d0d0;
}

    nav .menu li {
        cursor: pointer;
        font-weight: bold;
        color: #000000;
        white-space: nowrap;
    }

        nav .menu li.notdone {
            background-color: #999999;
            color: #cccccc;
        }

            nav .menu li.notdone a {
                color: #cccccc;
            }

    nav .dropdown .is-dropdown-submenu {
        border: solid 1px #949494;
    }

        nav .dropdown .is-dropdown-submenu a {
            padding: 0.5rem 1rem;
            font-size: 0.8rem;
            border-bottom: solid 1px #949494;
        }

            nav .dropdown .is-dropdown-submenu a:hover {
                background-color: #eeeeee;
                color: #1779ba;
                font-weight: bold;
            }

    nav .menu li.menutitle {
        margin: 0 0.5rem;
    }

        nav .menu li.menutitle a.menuheader {
            margin: 0 -0.5rem;
            padding: 0.4rem 1rem;
            color: #000000;
            font-weight: bold;
        }

            nav .menu li.menutitle a.menuheader:hover {
                background-color: #eeeeee;
                color: #1779ba;
                font-weight: bold;
            }

main {
    padding-top: 0.5rem;
    padding-bottom: 2rem;
}

    main .input-group {
        margin-bottom: 0 !important;
    }

    main .input-group-label {
        height: 1rem;
        padding: 0 1rem;
        font-size: 0.8rem;
        margin: 0 0 0.5rem;
        padding: 0.1rem 0.5rem;
        line-height: 0.8rem;
    }

    main .input-group-button input {
        height: 2rem;
        font-size: 0.8rem;
        margin: 0 0 0.5rem;
        padding: 0.1rem 0.5rem;
        line-height: 0.8rem;
    }

    main .dialogbox {
        width: 50%;
        border: 2px solid #333;
        border-radius: 8px;
        padding: 20px;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    }

        main .dialogbox::backdrop {
            background: rgba(128, 128, 128, 0.8);
        }

        main .dialogbox .close {
            font-size: 0.8rem;
        }

        main .dialogbox .input-group-label {
            margin: 0;
            /*
            height: 1rem;
            padding: 0 1rem;
            font-size: 0.8rem;
            padding: 0.1rem 0.5rem;
            line-height: 0.8rem;
                */
        }

        main .dialogbox .input-group-field {
            margin: 0;
        }

        main .dialogbox .input-group-button input {
            margin: 0;
            /*
            height: 2rem;
            font-size: 0.8rem;
            padding: 0.1rem 0.5rem;
            line-height: 0.8rem;
            */
        }

        main .dialogbox select, main .dialogbox textarea {
            margin: 0;
        }

        main .dialogbox .dialogclientdetails {
            border: solid 1px var(--newgencolor);
            padding: 0.5rem;
            margin: 0.5rem 0;
        }

        main .dialogbox .dialogclientsearch {
            border: solid 1px var(--newgencolor);
            padding: 0.5rem;
            margin: 0.5rem 0;
            max-height: 60vh;
            overflow-y: scroll;
            overflow-x: hidden;
        }

        main .dialogbox p {
            font-size: 0.8rem;
            line-height: normal;
        }

    main h1 {
        font-size: 1.6rem;
        margin: 0;
        padding: 0;
        margin-bottom: 0.5rem;
    }

    main h2 {
        font-size: 1.4rem;
        margin: 0;
        padding: 0;
        margin-bottom: 0.4rem;
    }

    main h3 {
        font-size: 1.2rem;
        margin: 0;
        padding: 0;
        margin-bottom: 0.3rem;
    }

    main label.middle {
        margin-bottom: 0;
        padding-bottom: 0;
        line-height: normal;
        padding: 0.5625rem 0;
    }

    main [type='text'], main [type='password'], main [type='date'], main [type='datetime'], main [type='datetime-local'], main [type='month'], main [type='week'], main [type='email'], main [type='number'], main [type='search'], main [type='tel'], main [type='time'], main [type='url'], main [type='color'], main textarea, main select {
        height: 2rem;
        font-size: 0.8rem;
        margin: 0 0 0.5rem;
        padding: 0.1rem 0.5rem;
    }

    main .searchresultcontainer {
        position: relative;
    }

        main .searchresultcontainer .searchresults {
            position: absolute;
            right: 1rem;
            top: -3rem;
            z-index: 10;
            border: solid 1px #000000;
            background-color: #ffffff;
            padding: 0.5rem;
            min-width: 300px;
        }

            main .searchresultcontainer .searchresults h3, main .searchresultcontainer .searchresults p {
                margin: 0;
                padding: 0;
            }

.officehome {
}

    .officehome .officeform {
        margin-top: 150px;
    }

.introtext {
    margin-bottom: 0.4rem;
}

.officeform {
    margin: 1rem 0 2rem 0;
    box-shadow: 4px 4px 4px 0px rgba(63,63,63,0.4);
    -webkit-box-shadow: 4px 4px 4px 0px rgba(63,63,63,0.4);
    -moz-box-shadow: 4px 4px 4px 0px rgba(63,63,63,0.4);
    border-radius: 0.4rem;
    background-color: var(--newgensilver);
}

    .officeform.topform {
        margin-top: 0;
    }

    .officeform.pagecontents {
        position: fixed;
        width: 10.7rem;
    }

    .officeform .officeheader {
        background-color: var(--newgencolor);
        border-radius: 0.4rem;
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }

        .officeform .officeheader label {
            font-weight: bold;
            color: var(--newgenwhite);
            text-shadow: 1px 1px 1px #000000;
            padding: 0.44rem 0.5rem !important;
            line-height: normal;
            font-size: 0.7rem;
        }

            .officeform .officeheader label.title {
                font-size: 1.4rem;
            }

    .officeform .officemain {
        padding: 0.25em 0.5rem;
        background-color: var(--newgensilver);
    }

        .officeform .officemain label, .officeform .officemain p, .officeform .officemain li {
            font-size: 0.8rem;
            line-height: normal;
            padding: 0.2rem 0;
        }

            .officeform .officemain label.middle, .officeform .officemain p.middle {
                padding: 0.5625rem 0;
            }

            .officeform .officemain label a {
                color: #339966;
                font-weight: bold;
            }

                .officeform .officemain label a:hover {
                    color: #336699;
                }

            .officeform .officemain label.input-group-label {
                padding: 0.2rem 0.5rem;
            }

            .officeform .officemain .datatable label, .officeform .datatable .officemain li {
                font-size: unset;
                line-height: unset;
                padding: unset;
            }

        .officeform .officemain ul {
            margin: 0;
            padding: 0;
        }

        .officeform .officemain li {
            margin: 0 0 0 1rem;
            padding: 0 0 0 1rem;
        }

        .officeform .officemain [type='text'], .officeform .officemain [type='password'], .officeform .officemain [type='date'], .officeform .officemain [type='datetime'], .officeform .officemain [type='datetime-local'], .officemain .officeform [type='month'], .officeform [type='week'], .officeform [type='email'], .officeform [type='number'], .officeform [type='search'], .officeform [type='tel'], .officeform [type='time'], .officeform [type='url'], .officeform .officemain [type='color'], .officeform .officemain textarea, .officeform .officemain select {
            margin: 0;
            border: solid 1px #bbbbbb;
        }

            .officeform .officemain input[readonly], .officeform .officemain select[readonly] {
                border: none;
                background-color: transparent;
                box-shadow: none;
            }

        .officeform .officemain [type='button'] .small {
            margin: 0;
            border: solid 1px #bbbbbb;
            height: 2rem;
            font-size: 0.8rem;
            padding: 0.1rem 1rem;
        }

        .officeform .officemain select {
            background-position: right 0rem center;
        }

        .officeform .officemain .inputsmall {
            font-size: 0.75rem;
            padding: 0.85em 2em 0.85em 1em;
            margin: 0;
            line-height: 1;
            height: auto;
        }

        .officeform .officemain .row {
            padding: 0.1rem 0 0 0;
        }

        .officeform .officemain .column, .officeform .officemain .columns {
            padding-left: 0.5375rem;
            padding-right: 0.5375rem;
        }

        .officeform .officemain .row.collapse .column, .officeform .officemain .row.collapse .columns {
            padding-left: 0;
            padding-right: 0;
        }

        .officeform .officemain.striped .row {
            margin-left: 0 !important;
            margin-right: 0 !important;
            background-color: var(--newgensilver);
        }

            .officeform .officemain.striped .row:nth-child(even) {
                background-color: var(--newgensilver);
            }

            .officeform .officemain.striped .row.nocol {
                background-color: transparent;
            }

        .officeform .officemain.editmenu {
            padding: 0.25rem 0.5rem;
        }

            .officeform .officemain.editmenu label {
                margin: 0.5rem;
            }

                .officeform .officemain.editmenu label a {
                    color: var(--newgencolor);
                }

                    .officeform .officemain.editmenu label a:hover {
                        color: var(--newgencolorfade);
                    }

    .officeform .officefooter {
        padding: 0.25em 0.5rem;
        background: var(--newgenwhite);
        border-top: solid 1px #999999;
    }

        .officeform .officefooter .rightborder {
            border-right: solid 1px #000000;
        }

        .officeform .officefooter label {
            color: #000000;
        }

            .officeform .officefooter label a {
                color: #000000;
            }

                .officeform .officefooter label a:hover {
                    color: #336699;
                }

.todobox {
    margin: 1rem 0;
    padding: 1rem;
    border: double 3px #999999;
    background-color: #cccccc;
    width: 40%;
}

    .todobox p, .todobox label {
        margin: 0;
        padding: 0;
        line-height: 1rem;
    }

    .todobox p {
        margin-bottom: 0.5rem;
    }

.companymenu {
    text-align: center;
}

    .companymenu label {
        margin: 0;
        padding: 0;
        line-height: 1.2rem;
    }

    .companymenu hr {
        border-bottom: solid 1px #999999;
        color: #000000;
        width: 60%;
        margin: 3px auto;
    }

footer {
    margin-top: auto;
    border-top: solid 1px #cccccc;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    background-color: #313a3f;
    color: #FFFFFF;
}

    footer label {
        color: #FFFFFF;
        line-height: normal;
        text-align: right;
    }

    footer .footercontactdetails {
        text-align: center;
        margin-bottom: 1rem;
    }

    footer .phonenumber a {
        color: #ffffff;
    }

.noprint {
    display: block;
}

.onlyprint {
    display: none;
}

.hometable {
    font-size: 0.8rem;
}

    .hometable th, .hometable td {
        margin: 0;
        padding: 0 0.2rem;
    }

.datatable {
    width: 100%;
    font-size: 0.7rem;
    margin-bottom: 0;
}

    .datatable thead {
        background: var(--newgencolor);
    }

        .datatable thead th {
            color: var(--newgenwhite);
            font-weight: bold;
            padding: 0.3rem 0.2rem 0.3rem;
            border-left: solid 2px #ffffff;
            border-right: solid 2px #ffffff;
            text-align: center;
        }

    .datatable tbody td {
        padding: 0.2rem 0.2rem 0.2rem;
        vertical-align: top;
        border-left: solid 1px #ffffff;
        border-right: solid 1px #ffffff;
        line-height: normal;
    }

        .datatable tbody td .dataitem {
            padding: 3px 5px;
            margin-right: 3px;
        }

        .datatable tbody td label {
            line-height: normal;
            font-size: 0.8rem;
        }

            .datatable tbody td label.middle {
                padding-bottom: 0;
            }

    .datatable.withbottomborder tbody td {
        border-bottom: solid 2px #ffffff;
    }

    .datatable tfoot {
        background: #bbbbbb;
    }

        .datatable tfoot td {
            padding: 0.2rem 0.3rem 0.2rem;
            vertical-align: top;
        }

    .datatable a {
        color: #000099;
    }

        .datatable a:hover {
            color: #ff0000;
        }

.filterbar {
    background-color: #cccccc;
    border: solid 1px #666666;
    padding: 0.2rem 0.5rem;
    font-size: 0.8rem;
    margin-bottom: 1rem;
}

    .filterbar .middle {
        font-size: inherit;
        padding-bottom: 0;
        margin-bottom: 0;
    }

    .filterbar .chkmargin {
        margin: 0;
        margin-left: 0.5rem;
    }

    .filterbar input, .filterbar select {
        margin-bottom: 0;
    }

.button {
    margin: 2px 0 0 0;
}

.hub {
    margin-top: 1rem;
    background-color: var(--newgengrey);
}

    .hub .overbook {
        background-color: #ffcccc;
    }

    .hub .header {
        background-color: #999999;
    }

    .hub td {
        padding: 0rem;
        border: solid #333333;
        border-width: 1px;
        border-left-style: solid;
        border-right-style: solid;
        font-size: 0.8rem;
        text-align: center;
        width: 25px;
        min-width: 25px;
        max-width: 25px;
        cursor: pointer;
        position: relative;
    }

        .hub td label {
            font-size: 0.8rem;
        }

        .hub td.inst {
            text-align: left;
            min-width: unset;
            max-width: unset;
            width: 100%;
            cursor: default;
            padding-left: 0.5rem;
        }

            .hub td.inst label {
                font-weight: bold;
            }

            .hub td.inst.icons {
                padding-left: 0.2rem;
                padding-right: 0.2rem;
            }

                .hub td.inst.icons .icon {
                    margin: 0;
                    padding: 0 2px;
                    width: 18px;
                    max-width: unset;
                }

        .hub td.hourclass {
            border-left: solid #000000;
            border-left-width: 1px;
        }

        .hub td .hubtdhover {
            width: 400px;
            text-align: left;
            padding: 0.5rem;
            position: absolute;
            top: 1.5rem;
            left: -200px;
            z-index: 10;
            background-color: #ffffff;
            color: #000000;
            border: solid 1px var(--newgencolor);
            border-radius: 1rem;
            box-shadow: 2px 2px 2px 0px rgba(63,63,63,0.4);
            -webkit-box-shadow: 2px 2px 2px 0px rgba(63,63,63,0.4);
            -moz-box-shadow: 2px 2px 2px 0px rgba(63,63,63,0.4);
            font-size: 1rem;
        }

    .hub .header td {
        background-color: #999999;
        text-align: left;
        cursor: default;
        border-left: solid #000000;
        border-left-width: 1px;
        color: #ffffff;
        padding-left: 0.5rem;
    }

        .hub .header td.nobord {
            border-left: unset;
            border-left-width: unset;
        }


.searchresults {
}

    .searchresults h3 {
        font-size: 1.2rem;
        font-weight: bold;
        margin: 0;
        padding: 0;
        margin-bottom: 0.4rem;
    }

    .searchresults label {
        margin: 0;
        padding: 0;
    }

    .searchresults .datatable {
        margin-bottom: 1rem;
    }

.standout {
    padding: 0.2rem 0.5rem;
    margin-bottom: 0.5rem;
    font-weight: bold;
    background-color: #1779ba;
    color: #fefefe;
    font-size: 0.6rem;
    line-height: unset;
}

    .standout.success {
        background-color: #3adb76;
        color: #0a0a0a;
    }

    .standout.warning {
        background-color: #ffae00;
        color: #0a0a0a;
    }

    .standout.alert {
        background-color: #cc4b37;
        color: #fefefe;
    }

.showscheduled {
    font-weight: bold;
    color: red;
}

.selected {
    background-color: #ccffcc !important;
}

.callout {
    text-align: center;
}

    .callout .silver {
        background-color: silver;
    }

    .callout .gold {
        background-color: gold;
    }

    .callout .platinum {
        background-color: var(--newgengrey);
    }

.formlabel label {
    font-weight: bold;
}

.modalheader {
    padding: 0.5rem 1rem 0 1rem;
    background-color: var(--newgencolor);
    color: #ffffff;
}

    .modalheader label {
        color: white;
        font-size: 1.2rem;
    }

.modalbody {
    min-height: 20rem;
    padding: 0.5rem 1rem;
}

    .modalbody label {
        font-size: 1rem;
    }

    .modalbody .modalpupildetails {
        margin-top: 1rem;
    }

        .modalbody .modalpupildetails label {
            font-size: 0.8rem;
            line-height: 1rem;
        }

        .modalbody .modalpupildetails .headerline label {
            font-size: 1rem;
            font-weight: bold;
        }

        .modalbody .modalpupildetails .modalpupildetail {
            margin-top: 0.5rem;
            padding-top: 0.5rem;
            border-top: solid 1px #999999;
        }

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
    .officeform.pagecontents {
        position: fixed;
        width: 13.3rem;
    }

    main .dialogbox {
        width: 70%;
    }
}

@media screen and (max-width: 39.99875em) {
    .officeform.pagecontents {
        display: none;
    }

    main .dialogbox {
        width: 100%;
    }
}

@media print {
    body {
        background-color: #ffffff;
    }

    .noprint {
        display: none;
    }

    .onlyprint {
        display: block;
    }

    .printrow {
        max-width: unset;
        width: 100% !important;
    }

    .officeform {
        margin: 1rem 0 0 0;
    }
}
