@import url('https://fonts.cdnfonts.com/css/product-sans');
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');

.fa {
    margin-right: 0.5em;
}

body {
    background-color: #FAFAFA;
    font-family: "Roboto", sans-serif;
}

header {
    background-color: var(--clr-primary-50);
    color: var(--clr-primary);
    position: relative;
    font-family: "Product Sans", "Roboto", sans-serif;
    font-weight: 700;
    z-index: 2;
}

#bcd-mode-tabs {
    background-color: #FFF;
    box-shadow: 0 1px 16px rgba(0, 0, 0, 0.15);
    position: relative;
    z-index: 1;
}

.nav {
    width: 50%;
    margin-left: auto;
    margin-right: auto;
}

.tab-content {
    padding: 3rem;
}

.card {
    background-color: #FFF;
    box-shadow: 2px 1px 16px rgba(0, 0, 0, 0.15);
    border-radius: 0.5rem;
    border: 0;
    padding: 3rem;
}

.col > .card {
    height: 100%;
}

.card-title {
    font-family: "Product Sans", "Roboto", sans-serif;
}

.nav-item > .nav-link {
    color: var(--clr-primary);
    transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), color 180ms ease-in-out;
}

.nav-item > .nav-link.active {
    background-color: var(--clr-primary);
    color: #FFF;
}

.nav-item > .nav-link:not(.active):hover {
    background-color: var(--clr-primary-50);
}

.nav-item > .nav-link:not(.active):active {
    background-color: var(--clr-primary-100);
}

input.form-control:focus {
    border-color: var(--clr-primary);
    box-shadow: 0 0 0 .25rem var(--clr-primary-50);
}

.form-floating > label {
    transition: opacity 180ms ease-in-out, transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.form-floating > input.form-control:focus + label {
    transition: opacity 180ms ease-in-out, transform 180ms cubic-bezier(0.4, 0, 0.2, 1);
}

.btn-group {
    width: 100%;
}

.btn-group > .btn.btn-outline-primary {
    border-color: var(--clr-primary);
    color: var(--clr-primary);
    transition: color 180ms ease-in-out, background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.btn-group > .btn-check:checked + .btn.btn-outline-primary {
    background-color: var(--clr-primary);
    color: #FFF;
}

.btn-group > .btn-check:checked + .btn.btn-outline-primary:focus-visible {
    box-shadow: 0 0 0 0.25rem rgba(var(--clr-primary), .5)
}

.footer-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 1rem;
}

.btn-convert-container {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
}

.btn-convert, .btn-reset, .btn-save-text {
    padding: 0 2rem;
    height: 2.5em;
    line-height: 2.5em;
    text-transform: uppercase;
    font-weight: 500;
    border: 0;
}

.btn-convert {
    background-color: var(--clr-primary-50);
    color: var(--clr-primary);
}

.btn-convert:hover, .btn-convert:active, .btn-convert:focus {
    background-color: var(--clr-primary-50) !important;
    color: var(--clr-primary) !important;
}

.btn-reset {
    background-color: var(--clr-complementary-50);
    color: var(--clr-complementary-300);
}

.btn-reset:hover, .btn-reset:active, .btn-reset:focus {
    background-color: var(--clr-complementary-50) !important;
    color: var(--clr-complementary-300) !important;
}

.btn-save-text {
    background-color: #555;
    color: #FFF;
    box-shadow: 2px 1px 8px rgba(0, 0, 0, 0.3);
}

.btn-save-text:hover, .btn-save-text:active, .btn-save-text:focus {
    background-color: #555 !important;
    color: #FFF !important;
}

.error-container {
    color: var(--clr-complementary-500);
}

.output-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.output-result {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-grow: 1;
    text-align: center;
}

#bcd-generator .output-result, #input-translator {
    font-family: "JetBrains Mono", monospace;
}

.output-result#output-generator {
    font-size: 2em;
    font-weight: 200;
}

.output-result#output-translator {
    font-size: 3em;
    font-weight: 300;
}

.output-result[data-result=false] {
    color: #888;
    font-weight: 500 !important;
    font-size: 3em !important;
}

.output-footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}

.output-description {
    color: #AAA;
}

@media (max-width: 1400px) {
    .footer-container {
        flex-direction: column;
        justify-content: normal;
        gap: 1rem;
    }

    .error-container {
        text-align: center;
    }

    .btn-convert-container {
        width: 100%;
    }

    .btn-convert-container > .btn {
        width: 100%;
    }
}

@media (max-width: 1200px) {
    .tab-content {
        padding: 1.5rem;
    }

    .card {
        padding: 1.5rem;
    }

    .btn-group > .btn.btn-outline-primary {
        font-size: 0.8em;
    }

    .output-result {
        margin-top: 1rem;
        margin-bottom: 1rem;
    }
}

@media (max-width: 992px) {
    .nav {
        width: 100%;
    }

    .tab-content {
        padding: 0;
    }

    .row {
        --bs-gutter-x: 0;
        --bs-gutter-y: 1rem;
        padding-top: 1rem;
        flex-direction: column;
    }

    .card {
        border-radius: 0;
    }
}