@import "./reset.css";

@font-face {
    font-family: "Adwaita Sans";
    font-style: normal;
    font-weight: 100 900;
    src: url("../assets/adwaita-sans-regular.woff2") format("woff2");
    font-display: swap;
}

@font-face {
    font-family: "Adwaita Sans";
    font-style: italic;
    font-weight: 100 900;
    src: url("../assets/adwaita-sans-italic.woff2") format("woff2");
    font-display: swap;
}

:root {
    --ohara-c-white: #ffffff;
    --ohara-c-black: #000000;

    --ohara-c-neutral: var(--ohara-c-black);
    --ohara-c-neutral-inverse: var(--ohara-c-white);

    --ohara-c-bg: #ffffff;
    --ohara-c-bg-alt: #f6f6f7;
    --ohara-c-bg-elevated: #ffffff;
    --ohara-c-bg-soft: #f6f6f7;

    --ohara-c-text-1: #3c3c43;
    --ohara-c-text-2: #67676c;
    --ohara-c-text-3: #929295;

    --ohara-c-gray-1: #dddde3;
    --ohara-c-gray-2: #e4e4e9;
    --ohara-c-gray-3: #ebebef;
    --ohara-c-gray-soft: rgba(142, 150, 170, 0.14);

    --ohara-c-brand-1: #3451b2;
    --ohara-c-brand-2: #3a5ccc;
    --ohara-c-brand-3: #5672cd;
    --ohara-c-brand-soft: rgba(100, 108, 255, 0.14);

    --ohara-c-border: #c2c2c4;
    --ohara-c-divider: #e2e2e3;
    --ohara-c-gutter: #e2e2e3;

    --ohara-shadow-1:
        0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06);
}

.dark {
    --ohara-c-neutral: var(--ohara-c-white);
    --ohara-c-neutral-inverse: var(--ohara-c-black);

    --ohara-c-bg: #1b1b1f;
    --ohara-c-bg-alt: #161618;
    --ohara-c-bg-elevated: #202127;
    --ohara-c-bg-soft: #202127;

    --ohara-c-text-1: #dfdfd6;
    --ohara-c-text-2: #98989f;
    --ohara-c-text-3: #6a6a71;

    --ohara-c-gray-1: #515c67;
    --ohara-c-gray-2: #414853;
    --ohara-c-gray-3: #32363f;
    --ohara-c-gray-soft: rgba(101, 117, 133, 0.16);

    --ohara-c-brand-1: #ffd900;
    --ohara-c-brand-2: #e7b85c;
    --ohara-c-brand-3: #dd9f3e;
    --ohara-c-brand-soft: rgba(255, 217, 0, 0.16);

    --ohara-c-border: #3c3f44;
    --ohara-c-divider: #2e2e32;
    --ohara-c-gutter: #000000;
}

body {
    color: var(--ohara-c-text-1);
    background-color: var(--ohara-c-bg);
    font-family:
        "Adwaita Sans", ui-sans-serif, system-ui, sans-serif,
        "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
        "Noto Color Emoji";
}

header {
    border-bottom: 1px solid var(--ohara-c-gutter);
    nav {
        display: flex;
        justify-content: space-between;
        align-items: center;
        height: 64px;
        max-width: 1300px;
        margin: 0 auto;

        padding: 0 64px 0 64px;
        @media (width < 768px) {
            padding: 0 24px 0 24px;
        }
    }

    .title {
        flex-shrink: 0;
    }

    .title-body {
        height: 64px;
        display: flex;
        align-items: center;
        gap: 0.5rem;

        img {
            height: 28px;
        }

        p {
            font-size: 1.25rem;
            font-weight: 600;
        }
    }
}

.nav-right {
    display: flex;
    gap: 1rem;
    align-items: center;

    .divider {
        width: 1px;
        height: 24px;
        background-color: var(--ohara-c-divider);
    }

    .icon-box {
        height: 36px;
        width: 36px;
        display: grid;
        place-content: center;
        color: var(--ohara-c-text-2);
        transition: color 0.5s;

        &:hover {
            color: var(--ohara-c-text-1);
            transition: color 0.25s;
        }

        & > svg {
            width: 20px;
            height: 20px;
            fill: currentColor;
        }
    }
}

.ColorModeSwitch {
    width: 40px;
    height: 22px;
    cursor: pointer;
    padding: 0;
    position: relative;
    flex-shrink: 0;
    border-radius: 11px;
    border: 1px solid var(--ohara-c-border);
    background-color: var(--ohara-c-gray-soft);
    transition: border-color 0.25s;

    .toggle-thumb {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        position: absolute;
        top: 1px;
        left: 1px;
        /* !important used to prevent disabling of transition during color mode change */
        transition: transform 0.2s ease !important;
        background-color: var(--ohara-c-neutral-inverse);
        box-shadow: var(--ohara-shadow-1);

        .icon {
            width: 12px;
            height: 12px;
            position: absolute;
            transition: opacity 0.2s ease;
            color: var(--ohara-c-text-2);
        }

        .sun {
            opacity: 1;
        }

        .moon {
            opacity: 0;
        }
    }

    &:hover {
        border-color: var(--ohara-c-brand-1);
    }

    &[data-current="dark"] {
        .toggle-thumb {
            transform: translateX(18px);
        }

        .icon {
            color: var(--ohara-c-text-1);
        }

        .sun {
            opacity: 0;
        }

        .moon {
            opacity: 1;
        }
    }
}

main {
    padding: 0 64px 0 64px;
    margin: 80px auto 0 auto;
    max-width: 1200px;

    @media (width < 768px) {
        padding: 0 24px 0 24px;
        margin: 40px auto 0 auto;
    }
}

.FilterInput {
    position: relative;

    .icon-box {
        position: absolute;
        top: 0;
        left: 0;
        height: 40px;
        width: 40px;
        display: grid;
        place-content: center;

        .funnel-icon {
            color: var(--ohara-c-gray-1);
            width: 16px;
            height: 16px;
        }
    }

    .input {
        height: 40px;
        width: 100%;
        font-size: 1rem;
        border-radius: 0.25rem;
        margin-bottom: 20px;
        padding-inline-end: 16px;
        padding-inline-start: 40px;
        transition: border-color 0.25s;
        border: 1px solid var(--ohara-c-border);

        &:hover {
            border-color: var(--ohara-c-text-3);
        }

        &:active,
        &:focus-visible {
            border-color: var(--ohara-c-brand-1);
        }
    }
}

.Directory {
    display: grid;
    gap: 10px;

    .item {
        padding: 16px;
        display: flex;
        gap: 1.5rem;
        border-radius: 0.25rem;
        transition: border-color 0.15s;
        border: 1px solid var(--ohara-c-border);

        &.selected {
            border-color: var(--ohara-c-brand-1);
        }

        &:focus-visible {
            outline-color: transparent;
            border-color: var(--ohara-c-brand-1);
        }
    }

    .logo {
        height: 72px;
        align-self: center;
    }

    .content {
        display: flex;
        flex-direction: column;

        .title {
            font-weight: 600;
            font-size: 1.125rem;
            @media (width < 768px) {
                font-size: 1rem;
            }
        }

        .description {
            color: var(--ohara-c-text-2);
            margin-top: 2px;
            font-size: 1rem;
            @media (width < 768px) {
                margin-top: 0px;
                font-size: 0.875rem;
            }
        }
    }

    .not-found {
        padding: 1rem;
        text-align: center;
        color: var(--ohara-c-text-2);
    }
}
