/* =========================================================
   LOGIQUEST — NUMBER THEORY QUESTION BANK
   This file affects the question bank only.
   ========================================================= */


/* =========================================================
   PAGE LAYOUT
   ========================================================= */

.bank-layout {
    min-height: calc(100vh - 64px);

    display: grid;

    grid-template-columns: 175px 1fr;

    background: var(--background);

    transition: grid-template-columns 0.3s ease;
}


.bank-layout.sidebar-collapsed {
    grid-template-columns: 52px 1fr;
}


.bank-sidebar {
    min-height: calc(100vh - 64px);
}


.side-nav .current {
    color: var(--burgundy);

    font-weight: 700;
}


/* =========================================================
   MAIN CONTENT
   ========================================================= */

.bank-content {
    min-width: 0;

    padding: 58px 6% 100px;
}


/* =========================================================
   PAGE HEADING
   ========================================================= */

.bank-header {
    margin-bottom: 44px;
}


.bank-label {
    color: var(--burgundy);

    font-size: 8px;

    font-weight: 700;

    letter-spacing: 0.16em;

    margin-bottom: 14px;
}


.bank-header h1 {
    color: var(--dark);

    font-size: clamp(38px, 4.5vw, 58px);

    font-weight: 400;

    line-height: 1;

    letter-spacing: -0.04em;

    margin-bottom: 10px;
}


.bank-subtitle {
    color: var(--brown);

    font-size: 10px;

    letter-spacing: 0.15em;
}


/* =========================================================
   DIFFICULTY FILTER
   ========================================================= */

.filter-row {
    min-height: 62px;

    border-top: 1px solid var(--line);

    border-bottom: 1px solid var(--line);

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 25px;
}


.filter-title {
    color: var(--text);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 0.13em;
}


.filter-buttons {
    display: flex;

    gap: 7px;
}


.filter-button {
    min-width: 42px;

    height: 30px;

    padding: 0 10px;

    border: 1px solid var(--line);

    background: transparent;

    color: var(--text);

    font-family: inherit;

    font-size: 9px;

    cursor: pointer;

    transition:
        background 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease;
}


.filter-button:hover {
    color: var(--burgundy);

    border-color: var(--burgundy);
}


.filter-button.active {
    background: var(--burgundy);

    border-color: var(--burgundy);

    color: var(--background);
}


/* =========================================================
   COLUMN LABELS
   ========================================================= */

.question-columns {
    min-height: 40px;

    padding: 0 12px;

    display: grid;

    grid-template-columns:
        55px
        minmax(0, 1fr)
        110px
        30px;

    gap: 20px;

    align-items: center;

    border-bottom: 1px solid var(--line);

    color: var(--brown);

    font-size: 7px;

    letter-spacing: 0.12em;
}


/* =========================================================
   QUESTION LIST
   ========================================================= */

.question-list {
    width: 100%;
}


.question-row {
    min-height: 78px;

    padding: 16px 12px;

    display: grid;

    grid-template-columns:
        55px
        minmax(0, 1fr)
        110px
        30px;

    gap: 20px;

    align-items: center;

    border-bottom: 1px solid var(--line);

    color: var(--text);

    text-decoration: none;

    transition:
        background 0.2s ease,
        padding-left 0.2s ease;
}


/* =========================================================
   QUESTION NUMBER
   ========================================================= */

.question-number {
    color: var(--dark);

    font-size: 14px;

    font-weight: 500;
}


/* =========================================================
   SKILL TAGS
   ========================================================= */

.question-skills {
    display: flex;

    flex-wrap: wrap;

    align-items: center;

    gap: 7px;
}


.question-skills span {
    padding: 6px 9px;

    border: 1px solid var(--line);

    color: var(--brown);

    font-size: 8px;

    letter-spacing: 0.08em;
}


/* =========================================================
   DIFFICULTY
   ========================================================= */

.question-difficulty {
    color: var(--text);

    font-size: 10px;
}


/* =========================================================
   ARROW
   ========================================================= */

.question-arrow {
    color: var(--burgundy);

    font-size: 17px;

    transition: transform 0.2s ease;
}


/* =========================================================
   QUESTION HOVER
   ========================================================= */

a.question-row:hover {
    background: var(--taupe);

    padding-left: 18px;
}


a.question-row:hover .question-arrow {
    transform: translateX(4px);
}


/* =========================================================
   UNAVAILABLE QUESTIONS
   ========================================================= */

.question-disabled {
    opacity: 0.3;
}


/* =========================================================
   FILTERING
   ========================================================= */

.question-row.hidden {
    display: none;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    .bank-layout {
        grid-template-columns: 145px 1fr;
    }


    .bank-layout.sidebar-collapsed {
        grid-template-columns: 52px 1fr;
    }


    .bank-content {
        padding: 50px 5% 80px;
    }


    .question-columns,
    .question-row {
        grid-template-columns:
            40px
            minmax(0, 1fr)
            80px
            25px;

        gap: 14px;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 650px) {

    .bank-layout {
        grid-template-columns: 46px 1fr;
    }


    .bank-layout.sidebar-collapsed {
        grid-template-columns: 46px 1fr;
    }


    .bank-content {
        padding: 45px 20px 70px;
    }


    .bank-header {
        margin-bottom: 35px;
    }


    .bank-header h1 {
        font-size: 36px;
    }


    .filter-row {
        padding: 15px 0;

        flex-direction: column;

        align-items: flex-start;

        gap: 12px;
    }


    .question-columns {
        display: none;
    }


    .question-row {
        grid-template-columns:
            30px
            minmax(0, 1fr);

        gap: 10px 12px;

        padding: 20px 4px;
    }


    .question-number {
        grid-row: 1 / span 3;
    }


    .question-difficulty {
        grid-column: 2;
    }


    .question-arrow {
        grid-column: 2;
    }


    a.question-row:hover {
        padding-left: 4px;
    }

}