:root {
    --g: #075b4c;
    --gd: #003f36;
    --lime: #84c442;
    --line: #d8e2de;
    --ink: #163a32;
    --soft: #f5f9f7
}

* {
    box-sizing: border-box
}

body {
    margin: 0;
    font: 14px "Segoe UI",Arial;
    color: var(--ink);
    background: #fbfcfc
}

a {
    color: inherit
}

.shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 210px 1fr
}

.side {
    background: linear-gradient(160deg,var(--g),var(--gd));
    color: #fff;
    padding: 22px 12px;
    display: flex;
    flex-direction: column
}

.logo {
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    width: 90px;
    margin: 0 12px 45px
}

    .logo b {
        font-size: 58px;
        line-height: .75;
        letter-spacing: -5px
    }

    .logo small {
        text-align: right
    }

.side nav {
    display: grid;
    gap: 9px
}

    .side nav a {
        padding: 18px 14px;
        text-decoration: none;
        border-radius: 8px
    }

        .side nav a.active, .side nav a:hover {
            background: #218050
        }

.sidefoot {
    margin-top: auto;
    border-top: 1px solid #447970;
    padding: 18px 10px;
    line-height: 2
}

    .sidefoot small {
        display: block;
        padding-left: 20px;
        font-size: 11px
    }

.stage {
    min-width: 0;
    display: grid;
    grid-template-rows: 58px 1fr 46px;
    min-height: 100vh
}

.top {
    text-align: right;
    padding: 20px 30px;
    border-bottom: 1px solid #edf1ef
}

.stage main {
    padding: 0 28px 25px
}

.status {
    display: flex;
    justify-content: space-between;
    padding: 14px 28px;
    border-top: 1px solid var(--line)
}

.heading {
    display: flex;
    justify-content: space-between;
    padding: 24px 0
}

    .heading h1 {
        margin: 0 0 6px
    }

    .heading p {
        margin: 0;
        color: #687871
    }

.company {
    display: flex;
    flex-direction: column;
    text-align: center;
    gap: 4px
}

.banner, .quote {
    padding: 19px 24px;
    border: 1px solid #cfe0d7;
    background: linear-gradient(90deg,#eff8f1,#fff);
    border-radius: 8px;
    font-size: 19px
}

.dashboard {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 22px;
    margin-top: 22px
}

.card {
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 6px 20px #003b2f0b
}

.gap {
    margin-top: 22px
}

.action {
    display: grid;
    grid-template-columns: 40px 1fr auto;
    align-items: center;
    height: 59px;
    padding: 0 20px;
    margin: 9px 0;
    border: 1px solid var(--line);
    border-radius: 6px;
    text-decoration: none;
    box-shadow: 0 3px 10px #003b2f0b
}

    .action span {
        font-size: 24px;
        color: #07874a
    }

    .action b {
        font-size: 26px
    }

.active {
    display: grid;
    border-left: 4px solid #b9e3c5;
    padding: 10px 20px;
    margin: 25px 0 14px
}

    .active b {
        font-size: 23px;
        color: #31872e
    }

.crumb {
    padding-top: 18px
}

.quote {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 16px
}

    .quote small {
        display: block;
        margin: 8px 0 0 28px
    }

    .quote button, .primary, .block {
        padding: 11px 17px;
        border: 1px solid #769b90;
        background: #fff;
        border-radius: 5px;
        margin-left: 7px
    }

.primary {
    background: #087840 !important;
    color: #fff !important
}

.tabs {
    padding: 18px;
    border-bottom: 1px solid var(--line);
    word-spacing: 25px
}

.editgrid {
    display: grid;
    grid-template-columns: 280px 1fr 355px;
    gap: 10px;
    height: 610px;
    margin-top: 10px
}

    .editgrid > .card {
        overflow: auto;
        padding: 14px
    }

.field {
    width: 100%;
    height: 41px;
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 9px
}

.block {
    display: block;
    text-align: left;
    width: 100%;
    margin: 7px 0;
    padding: 14px
}

.document {
    display: grid;
    grid-template-rows: auto auto 1fr auto
}

.tools {
    padding: 12px;
    border: 1px solid var(--line)
}

.document textarea {
    width: 100%;
    resize: none;
    border: 1px solid var(--line);
    padding: 18px;
    line-height: 1.45
}

.chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px
}

    .chips button {
        padding: 8px;
        border: 1px solid var(--line);
        background: #fff;
        border-radius: 4px
    }

.savebar {
    display: flex;
    gap: 80px;
    padding: 20px
}

.login {
    min-height: 100vh;
    display: grid;
    grid-template-rows: 90px 1fr 62px
}

    .login header {
        display: flex;
        align-items: center;
        padding: 0 45px
    }

        .login header .logo {
            color: var(--g);
            margin: 0 35px 0 0
        }

        .login header > b {
            border-left: 1px solid var(--line);
            padding-left: 28px
        }

.loginbody {
    display: grid;
    grid-template-columns: 58% 42%
}

.hero {
    display: flex;
    align-items: center;
    padding: 70px;
    background: radial-gradient(circle at 50% 40%,#176858,#003f36);
    color: #fff
}

    .hero > div {
        font-size: 76px
    }

    .hero strong, .hero span {
        color: var(--lime)
    }

    .hero small {
        display: block;
        font-size: 20px;
        letter-spacing: 2px
    }

.loginarea {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle,#f2faf4,#fff 70%)
}

    .loginarea > h1 {
        font-size: 40px;
        margin: 0
    }

    .loginarea > p {
        margin: 3px 0 22px
    }

.center {
    text-align: center;
    width: min(480px,90%)
}

.avatar {
    margin: auto;
    width: 62px;
    height: 62px;
    border-radius: 50%;
    background: #edf7ee;
    display: grid;
    place-items: center;
    font-size: 30px
}

.center form {
    text-align: left;
    display: grid;
    gap: 8px
}

.center .primary {
    margin: 12px 0 0
}

.error {
    padding: 10px;
    background: #fff1ef;
    color: #a62920
}

.validation-message {
    color: #a62920;
    font-size: 12px
}

.login > footer {
    padding: 22px 45px;
    background: linear-gradient(90deg,var(--g),#08745d);
    color: #fff
}

@media(max-width:1000px) {
    .editgrid {
        grid-template-columns: 240px 1fr
    }

        .editgrid > aside:last-child {
            display: none
        }

    .dashboard {
        grid-template-columns: 1fr
    }

    .loginbody {
        grid-template-columns: 40% 60%
    }
}

@media(max-width:700px) {
    .shell {
        display: block
    }

    .side {
        position: relative
    }

    .stage {
        display: block
    }

    .editgrid {
        display: block;
        height: auto
    }

    .quote {
        display: block
    }

        .quote > div:last-child {
            margin-top: 15px
        }

    .loginbody {
        display: block
    }

    .hero {
        min-height: 220px
    }

    .status {
        flex-wrap: wrap;
        gap: 10px
    }
}
