@import url('https://fonts.googleapis.com/css2?family=Tuffy:ital,wght@0,400;0,700;1,400;1,700&display=swap');

:root {
    color-scheme: light dark;
    --main-green: #8AC007;
    --junior-blue: #2191FB;
    --accent-purple: #992588;
    --accent-orange: #F9A01D;

    --subtle-green: color-mix(in oklab, var(--main-green), white 60%);
    --subtle-blue: color-mix(in oklab, var(--junior-blue), white 60%);
    --barely-blue: color-mix(in oklab, var(--junior-blue), white 90%);

    --off-white: #fafafa;
    --light-grey: #cccccc;
    --gentle-grey: #444444aa;
    --dark-text: #333333;
    /* Saving this to remember how to color-mix */
    /* --bright-blue: color-mix(in oklab, var(--python-blue), white 50%); */
}

body {
    font-family: "Tuffy", sans-serif;
    font-weight: 400;
    font-style: normal;
    padding: 0.5rem 1rem;
    color: var(--dark-text);
}

h1 {
    margin: 0;
    color: var(--main-green);
    &.junior {
        color: var(--junior-blue);
    }
}

h2 {
    margin: 0;
    color: var(--main-green);
    &.junior {
        color: var(--junior-blue);
    }
}

h3 {
    margin: 0;
    color: var(--main-green);
    &.junior {
        color: var(--junior-blue);
    }
}

h4 {
    margin: 0;
}

p {
    margin: 0;
}

dialog {
    border: none;
    border-radius: 10px;
    padding: 1rem 2rem 1rem 1.5rem;
    width: 50%;
    max-width: 50rem;

    h3 {
        margin-top: -.8rem;
        margin-left: -1rem;
        margin-bottom: .5rem;
    }
}

form {
    /* TODO: Change to grid display, to make layout more consistent */
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 1rem;
    padding: 0.5rem;
    max-height: 85vh;
    overflow: auto;
}

label {
    grid-column: 1 / span 3;
    text-align: end;

    &.narrow-input {
        text-align: start;
        grid-column: span 4;
    }
}

input {
    grid-column: span 9;
    border-style: inset;
    border-width: 0;
    border-color: var(--light-grey);
    border-radius: 8px;
    box-shadow: inset -0.5px 0.5px 1px 1px var(--gentle-grey);
    padding: .4rem .6rem;
    vertical-align: middle;

    &:user-invalid {
        border-color: var(--accent-orange);
        box-shadow: inset 0px 0px 1px 1px var(--accent-orange);
    }

    &:focus {
        outline: 1px solid var(--main-green);
    }

    &.junior {
        &:focus {
            outline: 1px solid var(--junior-blue);
        }
    }

    &.narrow-input {
        grid-column: span 4;
    }
}

select {
    width: 100%;
    grid-column: span 9;
    background-color: white;
    border-style: inset;
    border-width: 0;
    border-color: var(--light-grey);
    border-radius: 8px;
    box-shadow: inset -0.5px 0.5px 1px 1px var(--gentle-grey);
    padding: .4rem .6rem;
    vertical-align: middle;
}

.cross-button {
    border: none;
    background: none;
    cursor: pointer;
}

.close-modal-button {
    position: absolute;
    right: .2rem;
    top: .2rem;
    border: none;
    background: none;
    cursor: pointer;
}

.normal-header {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4rem;
    max-height: 6vh;
    color: var(--main-green);

    h1 {
        font-size: 2.5rem;
    }
}

#logout-button {
    position: absolute;
    top: 2rem;
    right: 2rem;
    font-size: 20px;
    font-weight: 700;
    text-decoration: underline;
    background: none;
    border: none;
    cursor: pointer;

    color: var(--main-green);
    &.junior {
        color: var(--junior-blue);
    }
}

#index-header {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4rem;
    max-height: 6vh;
    color: var(--main-green);

    h1 {
        font-size: 2.5rem;
    }
}

.index-content-div {
    width: 100%;
    height: 80vh;
    justify-self: center;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    align-items: center;
    justify-content: center;

    h2 {
        font-size: 2.5rem;
        color:var(--main-green);
    }
}

.content-div {
    width: auto;
    height: 80vh;
    justify-self: center;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding: 2rem 4rem;

    &.vertical {
        justify-content: center;
        padding: 2rem 8rem;
    }

    h2 {
        font-size: 2.5rem;
        color:var(--main-green);
    }
}

.button-group {
    display: flex;
    flex-direction: row;
    gap: 4rem;
    justify-content: space-between;
    padding: 2rem;
}

.major-button {
    padding: 1rem 2rem;
    color: white;
    border-style: none;
    border-radius: 10px;
    box-shadow: -3px 3px 3px var(--gentle-grey);
    text-decoration: none;
    font-size: 20px;
    font-weight: 700;
    cursor: pointer;
    background-color: var(--main-green);

    &.junior {
        background-color: var(--junior-blue);
    }

    &:active {
        box-shadow: -1px 1px 1px var(--gentle-grey);
        margin-right: 3px;
    }
}

.minor-button {
    padding: 0.5rem 1rem;
    color: white;
    border-style: none;
    border-radius: 10px;
    box-shadow: -2px 2px 2px var(--gentle-grey);
    text-decoration: none;
    text-align: center;
    vertical-align: middle;
    cursor: pointer;
    background-color: var(--main-green);
    font-family: "Tuffy", sans-serif;
    font-weight: 700;

    &.junior {
        background-color: var(--junior-blue);
    }

    &:active {
        box-shadow: -1px 1px 1px var(--gentle-grey);
        margin-right: 1.5px;
    }
}

#back-link {
    width: fit-content;
    padding: 1rem 0;
    font-size: 1.5rem;
    color:var(--main-green);

    &.junior {
        color: var(--junior-blue)
    }
}

.list {
    height: fit-content;
    display: flex;
    flex-direction: column;
    border-radius: 10px;
    overflow: auto;
    background-color: var(--off-white);
}

.list-item {
    padding: 0.75rem 0.5rem;
    display: grid;
    grid-template-columns: 1fr 200px;

    &.junior {
        background-color: var(--barely-blue);
    }

    &:nth-child(odd) {
        background-color: var(--subtle-green);

        &.junior {
            background-color: var(--subtle-blue);
        }
    }
}

.list-title {
    margin: 0;
    align-self: center;
    text-decoration: none;
    text-transform: capitalize;
    font-size: 18px;
    color: var(--dark-text)
}

.list-button {
    padding: 4px 8px;
}

h3 {
    color: var(--main-green);

    &.junior {
        color: var(--junior-blue);
    }
}

.node-details {
    display: grid;
    grid-template-columns: 1fr 3fr 2fr 6fr;
    gap: 1rem;
}

.content-pane {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.optional-button-container {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.content-pane {
    display: flex;
    gap: 1rem;
}

.events-pane {
    display: grid;
    grid-template-columns: 1fr 7fr;
    gap: 1rem;
}

.modal-button-group {
    grid-column: 1 / span 12;
    display: flex;
    flex-direction: row;
    justify-content: end;
    gap: 1rem;
}

.modal-submit-button {
    width: fit-content;
    padding: 0.5rem 1rem;
    align-self: flex-end;
    color: white;
    border-style: none;
    border-radius: 10px;
    box-shadow: -2px 2px 2px var(--gentle-grey);
    text-align: center;
    vertical-align: middle;
    cursor: pointer;
    background-color: var(--main-green);
    font-family: "Tuffy", sans-serif;
    font-weight: 700;

    &.junior {
        background-color: var(--junior-blue);
    }

    &:active {
        box-shadow: -1px 1px 1px var(--gentle-grey);
        margin-right: 1.5px;
    }
}

.coordinators-list {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.coordinator-row {
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    align-items: center;

    button {
        align-self: flex-end;
    }
}

.full-row {
    grid-column: 1 / span 12;
}