@import url(https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap);

body {
    text-align: center;
    padding: 0;
    background-image: url(source/image/background-2.webp);
    font-family: "Open Sans", sans-serif;
    margin: 0;
    flex-direction: column;
    align-items: center;
    background-color: #f0f0f0;
    overflow-x: hidden;
    box-sizing: border-box;
    overflow-y: hidden
}

.modal-backdrop,
.modal-box,
body {
    display: flex;
    justify-content: center
}

.modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .6);
    align-items: center;
    z-index: 1000
}

.modal-box {
    width: 80%;
    height: 60%;
    background: url(source/image/modal-2.png)no-repeat center center;
    background-size: cover;
    align-items: flex-end;
    padding: 30px;
    border-radius: 24px;
    text-align: center;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .25);
    position: relative
}

.modal-box h1 {
    margin-bottom: 10%;
    font-size: 81px;
    font-family: "Titan One", sans-serif;
    font-weight: 400;
    font-style: normal;
    color: #303030
}

.modal-box-text {
    position: absolute;
    top: 13%;
    left: 57%
}

.modal-box button {
    padding: 18px 24px;
    font-size: 24px;
    border: 0;
    border-radius: 6px;
    background-color: #007bff;
    color: #fff;
    cursor: pointer
}

.modal-box button:hover {
    background-color: #0056b3
}

.hidden {
    display: none
}

.book-container,
.main-wrapper {
    display: flex;
    overflow: hidden;
    height: 100vh
}

.main-wrapper {
    width: 100%
}

.book-container {
    justify-content: center;
    align-items: center;
    padding: .5rem;
    gap: 0;
    flex: 1
}

.page {
    display: none;
    background: #fff;
    aspect-ratio: 1/1.414;
    width: 31vw;
    max-width: 648px;
    max-height: 915px;
    box-sizing: border-box;
    position: relative
}

.page.active {
    display: block
}

/* Elevate pages that contain a summary box so it renders above sibling pages */
.page:has(.summary) {
    z-index: 2;
    overflow: visible
}

.sidebar {
    width: 20%;
    min-width: 250px;
    color: #333;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    height: 94%;
    overflow-y: auto;
    margin-left: 2%;
    margin-right: 2%;
    background-color: #fff3e0;
    border-radius: 20px;
    padding: 15px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .15);
    -ms-overflow-style: none;
    scrollbar-width: none
}

.desktop-sidebar-toggle {
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 1200;
    display: none;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 12px;
    background-color: #fc840d;
    color: #fff;
    font-size: 1.35rem;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .24)
}

.desktop-sidebar-toggle:hover {
    background-color: #e06e00
}

.mobile-auth-wrapper,
.mobile-nav-toggle {
    display: none
}

@media (min-width:1025px) {
    .desktop-sidebar-toggle {
        display: flex;
        align-items: center;
        justify-content: center
    }

    body.desktop-sidebar-collapsed .sidebar {
        display: none
    }

    body.desktop-sidebar-collapsed #myBook {
        margin-left: 0
    }

    .desktop-auth-user-row {
        display: flex;
        align-items: stretch;
        gap: 10px
    }

    .desktop-auth-user-row .user-info-sidebar {
        flex: 1 1 auto;
        min-width: 0
    }

    .desktop-auth-user-row .mobile-blank-modal-btn {
        width: 42px;
        min-width: 42px;
        border: 0;
        border-radius: 8px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #fc840d;
        color: #fff;
        cursor: pointer;
        box-shadow: 0 3px 8px rgba(0, 0, 0, .18);
        transition: transform .2s ease, background .2s ease
    }

    .desktop-auth-user-row .mobile-blank-modal-btn:hover {
        background: #e87505
    }

    .desktop-auth-user-row .mobile-blank-modal-btn:active {
        transform: scale(.96)
    }

    #mobileBlankModal {
        background: rgba(0, 0, 0, .45);
        backdrop-filter: blur(5px)
    }

    #mobileBlankModal .mobile-blank-modal-content {
        width: min(86vw, 860px);
        max-width: 860px;
        max-height: 86vh;
        min-height: 0;
        padding: 0;
        overflow: hidden;
        border-radius: 28px;
        background: #fff;
        border: 2px solid rgba(255, 255, 255, .95);
        box-shadow: 0 28px 52px rgba(0, 0, 0, .32);
        display: flex;
        flex-direction: column
    }

    #mobileBlankModal .mobile-blank-modal-header {
        display: grid;
        grid-template-columns: 42px 1fr 34px;
        align-items: center;
        gap: 18px;
        padding: 34px 40px 32px;
        background: #2467e8;
        color: #fff;
        flex-shrink: 0
    }

    #mobileBlankModal .mobile-blank-modal-info-icon {
        width: 36px;
        height: 36px;
        border-radius: 50%;
        border: 3px solid rgba(255, 255, 255, .92);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 1.35rem;
        line-height: 1;
        font-weight: 800;
        font-family: Arial, sans-serif
    }

    #mobileBlankModal .mobile-blank-modal-header h2 {
        margin: 0;
        color: #fff;
        text-align: left;
        text-transform: uppercase;
        font-size: clamp(1.55rem, 2.4vw, 1.25rem);
        line-height: 1.12;
        font-weight: 800;
        letter-spacing: 0
    }

    #mobileBlankModal .mobile-blank-modal-close {
        width: 34px;
        height: 34px;
        border: 0;
        border-radius: 9px;
        background: transparent;
        color: #fff;
        font-size: 26px;
        line-height: 1;
        cursor: pointer
    }

    #mobileBlankModal .mobile-blank-modal-close:hover {
        background: rgba(255, 255, 255, .16)
    }

    #mobileBlankModal .mobile-blank-modal-body {
        padding: 46px 48px 22px;
        max-height: min(50vh, 430px);
        overflow-y: auto;
        color: #596270;
        font-size: 1.16rem;
        line-height: 1.72;
        text-align: left;
        scrollbar-width: thin;
        overscroll-behavior: contain
    }

    #mobileBlankModal .mobile-blank-modal-body p {
        margin: 0 0 22px
    }

    #mobileBlankModal .mobile-guide-highlight {
        color: #1969f5;
        font-size: .96rem;
        font-weight: 800;
        letter-spacing: 2px;
        text-transform: uppercase
    }

    #mobileBlankModal .mobile-guide-steps {
        display: grid;
        gap: 18px;
        margin: 0;
        padding: 0;
        list-style: none
    }

    #mobileBlankModal .mobile-guide-steps li {
        display: grid;
        grid-template-columns: 40px 1fr;
        align-items: flex-start;
        gap: 18px
    }

    #mobileBlankModal .mobile-guide-steps span {
        width: 34px;
        height: 34px;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: #ff8617;
        color: #fff;
        font-size: .95rem;
        font-weight: 800
    }

    #mobileBlankModal .mobile-guide-steps p {
        margin: 1px 0 0;
        color: #2f2d2d;
        font-size: 1.02rem;
        line-height: 1.42
    }

    #mobileBlankModal .mobile-blank-scroll-cue {
        position: absolute;
        left: 50%;
        bottom: 104px;
        width: 34px;
        height: 34px;
        transform: translateX(-50%);
        pointer-events: none;
        opacity: 0;
        transition: opacity .2s ease
    }

    #mobileBlankModal .mobile-blank-scroll-cue::before {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: 999px;
        background: rgba(255, 255, 255, .95);
        box-shadow: 0 5px 18px rgba(0, 0, 0, .18)
    }

    #mobileBlankModal .mobile-blank-scroll-cue::after {
        content: "";
        position: absolute;
        top: 10px;
        left: 11px;
        width: 10px;
        height: 10px;
        border-right: 3px solid #2467e8;
        border-bottom: 3px solid #2467e8;
        transform: rotate(45deg)
    }

    #mobileBlankModal .mobile-blank-modal-content.has-more-content .mobile-blank-scroll-cue {
        opacity: 1
    }

    #mobileBlankModal .mobile-blank-modal-footer {
        display: flex;
        justify-content: flex-end;
        padding: 16px 40px 8px;
        background: #fff;
        flex-shrink: 0
    }

    #mobileBlankModal .mobile-blank-modal-footer button {
        width: min(100%, 280px);
        min-height: 58px;
        border: 0;
        border-radius: 999px;
        background: #ff8617;
        color: #fff;
        font-size: 1rem;
        font-weight: 800;
        cursor: pointer;
        box-shadow: 0 9px 18px rgba(255, 134, 23, .32)
    }

    #mobileBlankModal .mobile-blank-modal-footer button:hover {
        background: #f1790f
    }
}

.sidebar::-webkit-scrollbar {
    display: none
}

.controls-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px
}

.control-btn {
    display: flex;
    align-items: center;
    justify-content: center
}

.control-btn {
    background-color: #fc840d;
    color: #fff;
    border: 0;
    border-radius: 12px;
    width: 50px;
    height: 50px;
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(0, 0, 0, .2);
    transition: all .2s
}

.control-btn:hover {
    background-color: #e06e00;
    transform: translateY(-2px)
}

.control-btn:active {
    transform: translateY(1px)
}

.control-btn span {
    font-size: 1.4rem
}

.page-indicator {
    font-size: .95rem;
    color: #333;
    font-weight: 600;
    opacity: .8
}

.navigate-pill {
    background-color: #fc840d;
    border-radius: 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
    margin-bottom: 25px;
    color: #fff;
    box-shadow: 0 4px 6px rgba(0, 0, 0, .2)
}

.nav-arrow,
.toc-list li {
    cursor: pointer;
    font-weight: 700
}

.nav-arrow {
    background: 0 0;
    border: 0;
    color: #fff;
    font-size: 1.5rem;
    padding: 0 10px;
    transition: color .2s
}

.nav-arrow:hover {
    color: #ffe0b2
}

.nav-text {
    font-weight: 700;
    font-size: 1.1rem;
    letter-spacing: .5px
}

.daftar-isi-container {
    display: flex;
    flex-direction: column;
    width: 100%
}

.daftar-isi-header {
    font-size: 1rem;
    font-weight: 800;
    text-align: center;
    color: #fff;
    background-color: #fc840d;
    padding: 12px 0;
    border-radius: 10px 10px 0 0;
    margin: 0;
    letter-spacing: 1px
}

.toc-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    background-color: #fff8f0;
    border-radius: 0 0 10px 10px;
    overflow: hidden;
    border: 1px solid #ffd9a0;
    border-top: none
}

.toc-shape {
    width: 5px;
    height: 100%;
    min-height: 20px;
    flex-shrink: 0;
    border-radius: 8px;
    background: #fc840d
}

.toc-list li {
    background-color: transparent;
    padding: 12px 15px;
    font-size: .85rem;
    transition: background .2s, font-weight .2s;
    text-align: left;
    border-bottom: 1px solid #ffd9a0;
    color: #5d3a00;
    display: flex;
    align-items: center;
    column-gap: 10px
}

.toc-list li:last-child {
    border-bottom: none
}

.toc-list li:hover {
    background-color: #ffe0b2
}

.toc-list li.active {
    background-color: #ffcc80;
    font-weight: 700;
    color: #5d3a00
}

.toc-list li::after {
    content: attr(data-roman);
    margin-left: auto;
    opacity: 0.7;
    font-size: 0.8em
}

ul.toc-list {
    padding-inline-start: 0
}

.bottom-nav-mobile,
.modal,
.top-nav-mobile {
    display: none
}

.daftar-isi-list a,
.toc-list a {
    color: #333;
    text-decoration: none
}

.modal {
    position: fixed;
    z-index: 999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow-y: auto;
    background-color: rgba(0, 0, 0, .7)
}

.modal-content {
    background-color: #fffbea;
    margin: 5%auto;
    padding: 20px;
    border-radius: 10px;
    width: 90%;
    max-width: 500px
}

.close-button {
    float: right;
    font-size: 1.5rem;
    cursor: pointer
}

.daftar-isi-list {
    list-style-type: none;
    padding: 0;
    font-size: 1.2rem
}

.daftar-isi-list li {
    margin: 10px 0
}

.daftar-isi-list a {
    font-weight: 700
}

.bottom-nav-mobile button,
.top-nav-mobile button {
    background: rgba(80, 80, 80, .6);
    border: 0;
    cursor: pointer
}

.bottom-nav-mobile button.nav-arrow {
    background: 0 0
}

.bottom-nav-mobile button img,
.top-nav-mobile button img {
    height: 60px
}

#page0 {
    background-color: transparent
}

#page0.page {
    border: 0;
    box-shadow: none
}

.kata-pengantar {
    color: #000;
    text-align: justify;
    font-size: .7rem;
    font-family: "Open Sans";
    font-weight: 400
}

.page-padding {
    padding: 2rem 3rem
}

.kata-pengantar-footer {
    margin-left: auto;
    margin-right: 0;
    width: 50%
}

.kata-pengantar-footer-text {
    text-align: center;
    font-size: .7rem
}

h1,
h3 {
    color: #001f9c;
    text-align: center
}

h1 {
    font-size: 1.3rem;
    margin-top: 1.2rem;
    margin-bottom: .1rem
}

h3 {
    font-size: 1rem;
    margin-top: 0
}

.question,
h3 {
    margin-bottom: 1rem
}

.option,
.question p {
    font-size: .9rem;
    margin-bottom: .6rem
}

.option {
    margin-bottom: .5rem
}

.option span {
    padding: .3rem 0
}

.option p {
    font-size: .85rem;
    margin-left: .5rem
}

#QuizPage-1,
#QuizPage-2,
#QuizPage-3 {
    background-image: url("source/page/Page - (86).webp");
    background-size: cover;
    background-repeat: no-repeat
}

#QuizPage-2,
#QuizPage-3 {
    background-image: url("source/page/Page - (87).webp")
}

#QuizPage-3 {
    background-image: url("source/page/Page - (88).webp")
}

#QuizPage-4,
#QuizPage-5,
#QuizPage-6,
#QuizPage-7,
#QuizPage-8 {
    background-image: url("source/page/Page - (89).webp");
    background-size: cover;
    background-repeat: no-repeat
}

#QuizPage-5,
#QuizPage-6,
#QuizPage-7,
#QuizPage-8 {
    background-image: url("source/page/Page - (90).webp")
}

#QuizPage-6,
#QuizPage-7,
#QuizPage-8 {
    background-image: url("source/page/Page - (91).webp")
}

#QuizPage-7,
#QuizPage-8 {
    background-image: url("source/page/Page - (92).webp")
}

#QuizPage-8 {
    background-image: url("source/page/Page - (93).webp")
}

#QuizPage-10,
#QuizPage-9,
#essaypage-1,
#essaypage-2 {
    background-image: url("source/page/Page - (94).webp");
    background-size: cover;
    background-repeat: no-repeat
}

#QuizPage-10,
#essaypage-1,
#essaypage-2 {
    background-image: url("source/page/Page - (95).webp")
}

#QuizPage-1 .quiz-instruction {
    margin-bottom: 0;
    font-size: 80%
}

#essaypage-1,
#essaypage-2 {
    background-image: url("source/page/Page - (96).webp")
}

#essaypage-2 {
    background-image: url("source/page/Page - (97).webp")
}

.question-block ol li {
    font-size: 80%
}

.quizpage-inner .question p:first-child {
    font-size: 70%
}

.summary {
    padding: .5rem 1rem
}

.summary p,
.summary span {
    font-size: .95rem
}

.summary-right span {
    padding-left: .7rem
}

.summary-left {
    margin-top: .7rem
}

.summary-left p {
    font-size: .85rem;
    line-height: 1.2
}

.summary-left span {
    font-size: 1.6rem
}

.summary-right {
    margin-left: 1.5rem
}

.question-block {
    margin-bottom: .5rem;
    text-align: left
}

.question-block p {
    font-size: 100%;
    margin-bottom: 0
}

.question-block textarea,
.submit-btn {
    border-radius: 8px;
    font-size: .85rem;
    float: left;
    margin-bottom: .5rem
}

.question-block textarea {
    width: 50%;
    font-size: .7rem;
    height: 2rem;
    border: 1px solid #ddd;
    padding: .6rem;
    resize: vertical;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .06);
    margin-left: 1rem;
    font-family: "Open Sans", sans-serif
}

.submit-btn {
    background: linear-gradient(to right, #2196f3, #0d8bf2);
    color: #fff;
    border: 0;
    padding: .6rem .9rem;
    cursor: pointer;
    margin-left: .5rem
}

.answer-box {
    background: #f9f9f9;
    border-radius: 12px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .06);
    padding: .5rem 1rem;
    clear: both;
    margin-left: .7rem;
    position: relative;
    overflow: hidden
}

.answer-toggle {
    font-weight: 700;
    color: #0d73ec;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: .5rem;
    font-size: .85rem
}

.answer-text {
    font-size: .85rem;
    color: #444;
    display: block
}

.answer-box-TF-2.answer-locked::after,
.answer-box-TF.answer-locked::after,
.answer-box.locked::after {
    content: "";
    position: absolute;
    inset: 0;
    background: #d9d9d9;
    border-radius: inherit;
    z-index: 2
}

.arrow {
    font-size: .7vw
}

.answer-box.locked .answer-toggle {
    pointer-events: none;
    opacity: .5
}

.question-block ol {
    padding-left: 1vw;
    margin-bottom: 2%
}

.toc-header {
    margin-top: 20%
}

.page-badge,
.toc-item {
    color: #333;
    font-size: 80%;
    margin-left: 5%
}

.toc-item {
    display: flex;
    padding: 1%0;
    cursor: pointer;
    text-decoration: none;
    text-align: left;
    align-items: center
}

.page-badge {
    background-color: #ffe470;
    font-weight: 700;
    padding: 1%;
    border-radius: 4px;
    min-width: 2vw;
    text-align: center
}

.item {
    padding: 2% 4%;
    border: 2px solid #2c93d6;
    border-radius: .5vw;
    font-size: .8vw;
    cursor: pointer;
    transition: .3s;
    position: relative;
    text-align: left
}

.item.selected {
    outline: .6vw solid #007bff;
    background-color: #ffffc2
}

.item.matched {
    background-color: #eaf6ff
}

.correct {
    background-color: #32d36e !important;
    border-color: #32d36e !important;
    color: #fff;
    pointer-events: none
}

.incorrect {
    background-color: #f85c5c !important;
    border-color: #f85c5c !important;
    color: #fff
}

.score-box {
    font-size: 80%;
    margin-top: 3%;
    font-weight: 700;
    text-align: right
}

.match-submit-btn {
    display: block;
    margin: .2vw auto 0;
    padding: .4vw .8vw;
    border: 0;
    border-radius: 1vw;
    background: #007bff;
    color: #fff;
    font-size: 1vw;
    cursor: pointer
}

.match-submit-btn:hover:not(:disabled) {
    background-color: #0b7dda
}

.match-submit-btn:disabled {
    cursor: not-allowed;
    opacity: .75
}

#pageQuizMatch .score {
    font-size: 1vw;
    margin-top: 1vw
}

.guide-question-match {
    width: 80%;
    text-align: center;
    margin: 5%auto
}

p.guide-question-match {
    font-size: 60%
}

.question-TF ol,
.question-TF-2 ol {
    margin-top: .2vw;
    margin-bottom: .2vw;
    padding-left: 7%
}

#pageQuiz-TF-1-1 p,
#pageQuiz-TF-2-1 p {
    text-align: left;
    font-size: .8vw;
    margin-bottom: 0
}

ol li {
    text-align: left;
    font-size: .8vw
}

.observation-box-left p {
    font-size: 60%;
    font-weight: 700;
    line-height: 1.4em;
    text-align: right
}

.input-area textarea {
    width: 70%;
    border-radius: 4px;
    border: 0;
    padding: .5vw 1vw;
    font-size: 80%;
    resize: none;
    box-shadow: 0 0 4px rgba(0, 0, 0, .1);
    font-family: "open sans", sans-serif
}

.submit-button button:hover {
    background-color: #1976d2
}

:fullscreen .page {
    width: 35vw
}

:-webkit-full-screen .page {
    width: 35vw
}

:-moz-full-screen .page {
    width: 35vw
}

:root {
    --a4-ratio: calc(1123 / 794)
}

.main-content-wrapper {
    display: flex;
    width: 100%;
    max-width: 1600px;
    height: 90vh;
    align-items: flex-start;
    justify-content: center;
    flex-grow: 1;
    box-sizing: border-box
}

.page-nav-button {
    background-color: #555;
    color: #fff;
    border: 0;
    padding: 10px 15px;
    text-align: left;
    cursor: pointer;
    border-radius: 5px;
    font-size: .9em;
    transition: background-color .2s ease, transform .1s ease
}

.page-nav-button:hover {
    background-color: #007bff;
    transform: translateY(-1px)
}

.page-nav-button.active {
    background-color: #007bff;
    font-weight: 700;
    box-shadow: 0 0 8px rgba(0, 123, 255, .5)
}

.flip-book-container {
    perspective: 2000px;
    flex-grow: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    overflow: auto;
    padding: 12px;
    box-sizing: border-box
}

#myBook {
    width: auto;
    height: auto;
    box-shadow: 0 5px 20px rgba(0, 0, 0, .3);
    max-width: 100%;
    max-height: 100%;
    margin-left: 5%;
    position: relative;
    z-index: 1
}

.page {
    background-color: #fff;
    border: 1px solid #ccc;
    box-shadow: 0 0 10px rgba(0, 0, 0, .1)
}

.page--cover {
    background-color: #e0e0e0;
    border: 1px solid #999
}

.page-content {
    padding: 20px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    text-align: center
}

#pageTOC {
    background-image: url("source/page/Opening - (6).webp");
    background-size: cover;
    background-repeat: no-repeat
}

#page10,
#page18,
#page52,
#pageTOC {
    position: relative
}

.observation-container,
.observation-container-2 {
    position: absolute;
    top: 78%;
    left: 10%;
    width: 80%;
    height: 10%
}

.observation-container-2 {
    top: 68%
}

.observation-container-3,
.observation-container-4 {
    position: absolute;
    top: 60%;
    left: 10%;
    width: 80%;
    height: 10%
}

.observation-container-4 {
    top: 64%
}

.observation-container-5,
.observation-container-6 {
    position: absolute;
    top: 74%;
    left: 10%;
    width: 80%;
    height: 10%
}

.observation-container-6 {
    top: 67%
}

.observation-container-9 {
    top: 60%
}

.observation-container-7 {
    top: 72%
}

.observation-container-8 {
    top: 62%
}

.observation-box,
.observation-box-left {
    height: 100%;
    display: flex;
    align-items: center
}

.observation-box {
    background-color: #e8f3ff;
    border-radius: 30px;
    justify-content: space-between
}

.observation-box-left {
    width: 28%;
    background-color: #2196f3;
    border-top-left-radius: 30px;
    border-bottom-left-radius: 30px;
    color: #fff;
    justify-content: center;
    text-align: center
}

.input-area {
    position: absolute;
    left: 30%;
    top: 50%;
    transform: translateY(-50%);
    width: 65%;
    padding: 5%0;
    display: flex;
    justify-content: space-between;
    align-items: center
}

.error-message {
    color: #7a0000;
    margin-top: 5px;
    font-size: 60%;
    display: none
}

.submit-button {
    background-color: #2196f3;
    color: #fff;
    border: 0;
    padding: .4vw .6vw;
    border-radius: 4px;
    font-size: 80%;
    cursor: pointer;
    transition: background .3s ease;
    margin-left: 3%
}

.answer-box-observation {
    text-align: center;
    margin-top: 5px;
    font-size: 60%;
    display: none
}

.video-overlay {
    position: absolute;
    top: 21%;
    left: 10%;
    width: 80%;
    aspect-ratio: 16/9
}

.video-overlay iframe {
    width: 100%;
    height: 100%;
    border: 0
}

#canvas,
.quizpage-inner {
    position: absolute;
    top: 7%;
    left: 10%;
    width: 80%
}

.quizpage-inner .option p,
.quizpage-inner h1,
.quizpage-inner p {
    font-size: 100%
}

.quizpage-inner h3,
h1.heading-1 {
    font-size: 80%
}

.quizpage-inner-match {
    margin-top: 10%
}

ul.list-instruction-penilaian-akhir {
    margin: 0;
    padding-left: 10%;
    font-size: 80%
}

.list-instruction-penilaian-akhir li {
    font-size: 80%;
    text-align: left;
    line-height: 12px
}

.summary {
    position: absolute;
    top: -14%;
    left: -30%;
    text-align: center;
    display: flex;
    flex-direction: row;
    font-size: 100%;
    font-weight: 500;
    background-color: #ffe974;
    border-radius: 16px;
    padding: .5vw 1vw;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, .25);
    z-index: 9999;
}

.summary-first {
    top: -10% !important
}

.summary-mobile {
    display: none
}

.summary p,
.summary span {
    margin: 0;
    font-size: 1vw;
    color: #0d0d0d
}

.summary-right span {
    padding-left: .7vw
}

.summary-left,
.summary-right {
    display: flex;
    flex-direction: column;
    justify-content: center
}

.summary-left {
    align-items: center;
    margin-top: .7vw
}

.summary-left p {
    font-size: .9vw;
    line-height: .2vw;
    font-weight: 500
}

.summary-left span {
    font-size: 2vw;
    font-weight: 700
}

.summary-right {
    margin-left: 2vw
}

.summary-right-inner {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: left
}

.restart-btn {
    display: block;
    margin: 1.5rem auto;
    padding: .8rem 2rem;
    background-color: #001f9c;
    color: #fff;
    font-size: 1rem;
    border: 0;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color .3s ease
}

.restart-btn:hover {
    background-color: #0040ff
}

.column p,
h3.heading-3 {
    margin-bottom: 1%;
    font-size: 80%
}

.container,
.container-match {
    display: flex;
    justify-content: center;
    position: relative;
    gap: 10%
}

.container-match {
    width: 100%
}

.column {
    display: flex;
    flex-direction: column;
    gap: .7vw;
    z-index: 1
}

.column p {
    margin-top: 5%;
    margin-bottom: 0;
    font-weight: 600
}

#canvas {
    top: 0;
    left: 0;
    z-index: 0;
    width: auto;
    height: auto
}

.question-TF,
.question-TF-2 {
    margin-bottom: .5vw;
    text-align: center
}

.question-TF h3,
.question-TF-2 h3 {
    font-size: 4vw;
    margin-bottom: 1vw
}

.options {
    display: flex;
    gap: 1vw;
    margin: 0;
    justify-content: center
}

ul.list-TF {
    margin: 0;
    text-align: left;
    padding-left: 12%
}

.list-TF li {
    font-size: .8vw
}

.quiz-instruction {
    margin-top: 18%
}

#pageQuiz-TF-1-1,
#pageQuiz-TF-1-2,
#pageQuiz-TF-1-3 {
    background-image: url("source/page/Page - (71).webp");
    background-size: cover;
    background-repeat: no-repeat
}

#pageQuiz-TF-1-2,
#pageQuiz-TF-1-3 {
    background-image: url("source/page/Page - (72).webp")
}

#pageQuiz-TF-1-3 {
    background-image: url("source/page/Page - (73).webp")
}

#pageQuiz-TF-2-1,
#pageQuiz-TF-2-2,
#pageQuiz-TF-2-3,
#pageQuizMatch {
    background-image: url("source/page/Page - (83).webp");
    background-size: cover;
    background-repeat: no-repeat
}

#pageQuiz-TF-2-2,
#pageQuiz-TF-2-3,
#pageQuizMatch {
    background-image: url("source/page/Page - (84).webp")
}

#pageQuiz-TF-2-3,
#pageQuizMatch {
    background-image: url("source/page/Page - (85).webp")
}

#pageQuizMatch {
    background-image: url("source/page/Page - (9).webp")
}

.btn,
.btn-2 {
    padding: .4vw .8vw;
    border: 0;
    font-size: .8vw;
    border-radius: .2vw;
    background: #f0f0f0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, .1);
    cursor: pointer;
    transition: .3s
}

.btn-2.correct,
.btn.correct {
    background-color: #32d36e;
    color: #fff
}

.btn-2.wrong,
.btn.wrong {
    background-color: #f85c5c;
    color: #fff
}

.answer-box-TF,
.answer-box-TF-2 {
    padding: .2vw .4vw;
    background: #eaffec85;
    border-radius: .2vw;
    box-shadow: 0 2px 5px rgba(0, 0, 0, .08);
    font-size: .8vw;
    display: block;
    color: #00b300;
    min-height: 1.4em;
    position: relative;
    overflow: hidden
}

.option span,
.score {
    font-weight: 700;
    text-align: center
}

.score {
    font-size: 1vw;
    margin-top: 1vw
}

.reset-btn,
.reset-btn-2 {
    display: block;
    margin: .2vw auto 0;
    padding: .4vw .8vw;
    font-size: 1vw;
    background: #007bff;
    color: #fff;
    border: 0;
    border-radius: 1vw;
    cursor: pointer
}

.question {
    margin-bottom: 1.5vw
}

.question p {
    font-size: .9vw;
    font-weight: 600;
    margin-bottom: .8vw;
    text-align: left
}

.option,
.option p {
    font-size: .8vw;
    background-color: #fff;
    transition: all .2s ease;
    cursor: pointer
}

.option {
    display: flex;
    align-items: center;
    border: 1px solid #ccc;
    border-radius: 8px;
    margin-bottom: .2vw;
    margin-left: 5%
}

.option span {
    display: inline-block;
    width: 8%;
    background-color: #ccc;
    color: #fff;
    border-radius: 5px;
    padding: .3vw 0
}

.option p {
    width: 90%;
    text-align: left;
    margin: 0;
    margin-left: .5vw;
    font-weight: 400
}

.option.correct {
    background-color: #00b300;
    color: #fff;
    border-color: #00b300
}

.option.correct p {
    color: #fff;
    background-color: #32d36e
}

.option.correct span {
    background-color: #007a00
}

.option.incorrect,
.option.incorrect p {
    background-color: #f85c5c;
    color: #fff;
    border-color: #f99
}

.option.incorrect span {
    background-color: #b53016
}

.option.disabled {
    pointer-events: none;
    opacity: .8
}

@media (min-width:1900px) {
    .sidebar {
        width: 20vw
    }

    .toc-list {
        width: 90%
    }

    .page {
        width: 40vw;
        max-width: 650px
    }

    .summary {
        left: 93%;
        top: -13% !important
    }

    .question-block p {
        font-size: 120%
    }

    .question-block textarea {
        height: 2rem;
        margin-bottom: .5vw;
        margin-left: 1vw;
        font-size: 80%;
        font-family: "Open Sans", sans-serif
    }

    .submit-btn {
        padding: .6vw .9vw;
        border-radius: 8px;
        font-size: 80%;
        cursor: pointer;
        float: left;
        margin-left: .5vw;
        margin-bottom: .5vw
    }

    .answer-box {
        background: #f9f9f9;
        border-radius: 12px;
        box-shadow: 0 4px 10px rgba(0, 0, 0, .06);
        padding: .5vw 1vw;
        clear: both;
        margin-left: .7vw
    }

    .answer-toggle {
        font-weight: 700;
        color: #0d73ec;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: .2vw;
        font-size: 80%
    }

    .answer-text {
        color: #444;
        display: block
    }

    .observation-box-left p,
    .question-block ol li,
    p.guide-question-match {
        font-size: 80%
    }

    #QuizPage-1 .quiz-instruction,
    .answer-text,
    ul.list-instruction-penilaian-akhir {
        font-size: 100%
    }

    .list-instruction-penilaian-akhir li {
        font-size: 100%;
        line-height: 100%
    }

    .modal-box {
        width: 80%;
        height: 60%
    }

    .modal-box h1 {
        margin-bottom: 10%;
        font-size: 108px;
        font-family: "Titan One", sans-serif;
        font-weight: 400;
        font-style: normal;
        color: #303030
    }

    .modal-box-text {
        position: absolute;
        top: 13%;
        left: 55%
    }

    .modal-box button {
        padding: 24px 32px;
        font-size: 32px;
        border-radius: 6px
    }
}

@media (max-width:1024px) {
    .main-wrapper {
        flex-direction: column;
        height: 100vh
    }

    .sidebar {
        min-height: 60px
    }

    .book-container {
        flex-direction: column
    }

    .page {
        width: 98vw;
        max-width: 600px;
        max-height: none;
        position: relative
    }

    .sidebar {
        display: none
    }

    .bottom-nav-mobile,
    .top-nav-mobile {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: .5rem 1rem;
        background-color: transparent;
        height: 60px
    }

    .top-nav-mobile button img {
        height: 60px
    }

    .button-nav img button {
        height: 40px
    }

    .bottom-nav-mobile {
        margin-top: 1rem
    }

    .kata-pengantar,
    .kata-pengantar-footer-text {
        font-size: .6rem
    }

    .page-padding {
        padding: 1rem 2rem
    }

    .list-TF li,
    ol li {
        font-size: 100%
    }

    body {
        padding: 10px
    }

    #myBook {
        width: auto !important;
        height: auto;
        box-shadow: 0 5px 20px rgba(0, 0, 0, .3);
        max-width: 100%;
        max-height: 100%;
        margin-left: 5%
    }

    .main-content-wrapper {
        flex-direction: column;
        padding: 10px;
        height: auto;
        min-height: 90vh;
        justify-content: flex-start
    }

    .flip-book-container {
        flex-direction: column
    }

    .sidebar {
        width: 100%;
        max-width: 700px;
        margin-right: 0;
        margin-bottom: 20px;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        align-self: center;
        height: auto;
        padding: 10px
    }

    .sidebar h3 {
        width: 100%;
        margin-bottom: 10px;
        font-size: 1em
    }

    .page-nav-button {
        flex: 1 1 auto;
        max-width: 120px;
        font-size: .85em;
        padding: 8px 12px
    }

    .observation-box-left p {
        font-size: 90%
    }

    .submit-button {
        padding: 3% 6%;
        font-size: 100%;
        margin-left: 2%
    }

    .question-TF,
    .question-TF-2 {
        margin-bottom: .2vw
    }

    .question-TF h3,
    .question-TF-2 h3 {
        font-size: 4vw;
        margin-bottom: .5vw
    }

    .question-TF ol,
    .question-TF-2 ol {
        margin-top: 2vw;
        margin-bottom: .2vw;
        padding: 0 0 0 4vw
    }

    .options {
        gap: 4vw
    }

    ul.list-TF {
        margin: 0
    }

    .list-TF li {
        width: 100%
    }

    #pageQuiz-TF-1-1 p,
    #pageQuiz-TF-2-1 p {
        font-size: 100%;
        margin-top: 0;
        margin-bottom: 0
    }

    #pageQuiz-TF-1-1 p.quiz-instruction,
    #pageQuiz-TF-2-1 p.quiz-instruction,
    .quiz-instruction.pilihan-ganda {
        margin-top: 16%
    }

    .quiz-instruction {
        margin-top: 14%
    }

    .quizpage-inner .question p:first-child {
        font-size: 100%
    }

    #QuizPage-1 .quiz-instruction,
    .btn,
    .btn-2,
    ul.list-instruction-penilaian-akhir {
        font-size: 100%
    }

    .list-instruction-penilaian-akhir li {
        font-size: 100%;
        line-height: 100%
    }

    .btn,
    .btn-2 {
        padding: 1vw 4vw;
        border-radius: .2vw
    }

    .answer-box-TF,
    .answer-box-TF-2 {
        padding: .2vw .4vw;
        border-radius: .2vw;
        font-size: 80%
    }

    .score {
        font-size: 80%;
        margin-top: 6vw
    }

    .reset-btn,
    .reset-btn-2 {
        margin: 1vw auto 0;
        padding: 2vw 4vw;
        font-size: 100%
    }

    #gameContainer-1 h1 {
        margin-bottom: 0
    }

    .option {
        margin-bottom: .5vw
    }

    .option span {
        width: 6%;
        font-size: 80%;
        background-color: #ccc;
        color: #fff;
        font-weight: 700;
        text-align: center;
        border-radius: 5px;
        padding: .5vw 0
    }

    .option p {
        width: 90%;
        font-size: .8vw;
        background-color: #fff;
        transition: all .2s ease;
        text-align: left;
        cursor: pointer;
        margin: 0;
        margin-left: 1vw;
        font-weight: 400
    }

    .item,
    .option,
    .question-block ol li {
        font-size: 100%
    }

    .container {
        gap: 7vw
    }

    .column {
        gap: 1.5vw
    }

    .score-box {
        font-size: 100%;
        margin-top: 5vw
    }

    .match-submit-btn {
        font-size: 100%;
        padding: 1vw 1.4vw
    }

    .summary {
        top: -25%;
        left: 30%;
        width: 35%;
        font-size: 10%;
        border-radius: 2vw;
        padding: 1vw 2vw
    }

    .summary-first {
        top: -17% !important
    }

    .summary-second {
        top: -20% !important
    }

    .summary p,
    .summary span {
        margin: 0;
        font-size: 2.5vw;
        color: #0d0d0d
    }

    .summary-right span {
        padding-left: 2vw
    }

    .summary-left {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        margin-top: .7vw
    }

    .summary-left p {
        font-size: 2.5vw;
        line-height: 2vw;
        font-weight: 500
    }

    .summary-left span {
        font-size: 4vw
    }

    .summary-right {
        margin-left: 2vw
    }

    .summary-mobile {
        display: flex
    }

    .question-block {
        margin-bottom: 1.5vw
    }

    .question-block p {
        font-size: 100%;
        margin-bottom: .3vw
    }

    .question-block textarea {
        width: 60%;
        min-height: 4vw;
        padding: 1.5vw 2vw;
        font-size: 100%;
        margin-bottom: 2vw;
        margin-left: 1vw;
        height: 3rem;
        font-size: .8rem;
        padding: .5rem;
        margin-left: .8rem
    }


    .submit-btn {
        padding: 1.5vw 2vw;
        border-radius: 8px;
        font-size: 80%;
        margin-left: .5vw;
        margin-bottom: .5vw
    }

    .answer-box {
        padding: 1vw 2vw;
        margin-left: .7vw
    }

    .answer-toggle {
        margin-bottom: .2vw;
        font-size: 80%
    }

    .answer-text {
        font-size: 80%
    }

    .arrow {
        font-size: 2vw
    }

    .question-block ol {
        padding-left: 1vw;
        margin: 0;
        margin-bottom: 1vw
    }

    .modal-box {
        width: 80%;
        height: 30%
    }

    .modal-box h1 {
        margin-bottom: 10%;
        font-size: 54px;
        font-family: "Titan One", sans-serif;
        font-weight: 400;
        font-style: normal;
        color: #303030
    }

    .modal-box-text {
        position: absolute;
        top: 17%;
        left: 57%
    }

    .modal-box button {
        padding: 16px 24px;
        font-size: 18px;
        border: 0;
        border-radius: 6px;
        background-color: #007bff;
        color: #fff;
        cursor: pointer
    }

    :fullscreen .page {
        width: 98vw
    }

    :-webkit-full-screen .page {
        width: 98vw
    }

    :-moz-full-screen .page {
        width: 98vw
    }

    h1 {
        font-size: 1.15rem;
        margin-top: 1rem;
        margin-bottom: .08rem
    }

    h3 {
        font-size: .95rem
    }

    .question,
    h3 {
        margin-bottom: .9rem
    }

    .option,
    .question p {
        font-size: .85rem;
        margin-bottom: .5rem
    }

    .option {
        margin-bottom: .4rem
    }

    .option span {
        padding: .25rem 0
    }

    .option p {
        font-size: .8rem;
        margin-left: .4rem
    }

    .summary {
        padding: .4rem .8rem
    }

    .summary p,
    .summary span {
        font-size: .85rem
    }

    .summary-left span {
        font-size: 1.4rem
    }

    .summary-right {
        margin-left: 1.2rem
    }

    .submit-btn {
        padding: .5rem .8rem;
        font-size: .8rem;
        margin-left: .4rem
    }

    .answer-toggle {
        margin-bottom: .4rem
    }

    .answer-text,
    .answer-toggle {
        font-size: .8rem
    }
}

@media (max-width:767px) {
    .option {
        font-size: .85rem;
        margin-bottom: .3rem
    }

    h1 {
        margin-top: .8rem;
        margin-bottom: .05rem
    }

    .question,
    h3 {
        margin-bottom: .7rem
    }

    .question p {
        font-size: .8rem;
        margin-bottom: .4rem
    }

    .option span {
        padding: .2rem 0;
        font-size: .7rem
    }

    .option p {
        font-size: .75rem;
        margin-left: .3rem
    }

    .quizpage-inner {
        position: absolute;
        top: 8%;
        left: 10%;
        width: 80%;
        max-height: 84%;
        overflow-y: auto;
        overflow-x: hidden;
        padding-bottom: 2rem;
    }

    .quizpage-inner::-webkit-scrollbar {
        width: 4px;
    }

    .quizpage-inner::-webkit-scrollbar-track {
        background: transparent;
    }

    .quizpage-inner::-webkit-scrollbar-thumb {
        background: rgba(0, 0, 0, 0.2);
        border-radius: 4px;
    }

    .quizpage-inner h1,
    h1 {
        font-size: 1rem
    }

    .quizpage-inner h3,
    h3 {
        font-size: .85rem
    }

    .quizpage-inner p.column-title {
        font-size: .85rem;
        height: 10%;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center
    }

    .quizpage-inner .option p,
    .quizpage-inner p,
    .summary p,
    .summary span {
        font-size: .75rem
    }

    .guide-question-match {
        margin: 2%auto
    }

    .summary {
        padding: .3rem .6rem
    }

    .summary-left span {
        font-size: 1.2rem
    }

    .summary-right {
        margin-left: 1rem
    }

    .question-block textarea,
    .submit-btn {
        font-size: .75rem;
        margin-left: 0;
        clear: both
    }

    .question-block textarea {
        height: 2rem;
        padding: .4rem;
        margin-bottom: .8rem
    }

    .submit-btn {
        width: 20%;
        padding: .5rem .7rem
    }

    .answer-box {
        margin-left: 0;
        padding: .4rem .8rem
    }

    .answer-toggle {
        margin-bottom: .3rem
    }

    .answer-text,
    .answer-toggle,
    .observation-box-left p {
        font-size: .75rem
    }

    .toc-header {
        margin-top: 15%
    }

    .page-badge,
    .toc-item {
        padding: 1%0;
        font-size: .75rem;
        margin-left: 5%
    }

    .page-badge {
        padding: 1%
    }

    .observation-box-left {
        border-top-left-radius: 15px;
        border-bottom-left-radius: 15px
    }

    .input-area {
        height: 70%
    }

    .input-area textarea {
        font-size: .75rem;
        height: 80%
    }

    .error-message {
        margin-top: 5px;
        font-size: .75rem
    }

    .submit-button {
        padding: .5rem .8rem;
        margin-left: 2%
    }

    .answer-box-observation,
    .match-submit-btn,
    .score-box,
    .submit-button {
        font-size: .75rem
    }

    #QuizPage-1 .quiz-instruction,
    #pageQuiz-TF-1-1 p,
    #pageQuiz-TF-2-1 p,
    .list-TF li,
    ol li {
        font-size: 60%
    }

    #pageQuiz-TF-1-1 p.quiz-instruction,
    #pageQuiz-TF-2-1 p.quiz-instruction,
    .quiz-instruction {
        margin-top: 16%
    }

    ul.list-instruction-penilaian-akhir {
        font-size: 80%
    }

    .list-instruction-penilaian-akhir li {
        font-size: 80%;
        line-height: 100%
    }

    .quizpage-inner .question p:first-child {
        font-size: 70%;
        line-height: 110%
    }

    .answer-box-TF,
    .answer-box-TF-2,
    .btn,
    .btn-2 {
        padding: 1vw 4vw;
        font-size: 60%;
        border-radius: .2vw
    }

    .answer-box-TF,
    .answer-box-TF-2 {
        margin-top: 1%;
        padding: .2vw .4vw
    }

    .score {
        font-size: 60%;
        margin-top: 6vw
    }

    .reset-btn,
    .reset-btn-2 {
        font-size: 80%
    }

    .question-TF,
    .question-TF-2 {
        margin-bottom: 3%
    }

    .summary {
        top: -20%;
        font-size: 20%
    }

    .summary p,
    .summary span {
        font-size: 3vw
    }

    .summary-first {
        top: -17% !important
    }

    .item {
        padding: 1% 4%;
        border: 1px solid #2c93d6;
        border-radius: 1.5vw;
        font-size: 75%;
        cursor: pointer;
        transition: .3s;
        position: relative;
        text-align: left
    }

    .question-block p {
        font-size: 100%
    }

    .question-block textarea {
        width: 60%;
        min-height: 4vw;
        padding: 1.5vw 2vw;
        font-size: 70%;
        margin-bottom: 2vw;
        margin-left: 1vw
    }

    .submit-btn {
        padding: 3%;
        border-radius: 8px;
        font-size: 70%;
        margin-left: .5vw;
        margin-bottom: .5vw
    }

    .answer-box {
        padding: 1vw 2vw;
        margin-left: .7vw
    }

    .answer-toggle {
        margin-bottom: .2vw;
        font-size: 60%
    }

    .answer-text {
        font-size: 60%
    }

    .arrow {
        font-size: 2vw
    }

    .question-block ol {
        padding-left: 1vw;
        margin: 0;
        margin-bottom: 1vw
    }

    .question-block ol li {
        font-size: 70%
    }

    .modal-box {
        width: 80%;
        height: 20%
    }

    .modal-box h1 {
        margin-bottom: 10%;
        font-size: 32px;
        font-family: "Titan One", sans-serif;
        font-weight: 400;
        font-style: normal;
        color: #303030
    }

    .modal-box-text {
        position: absolute;
        top: 19%;
        left: 55%
    }

    .modal-box button {
        padding: 12px 16px;
        font-size: 12px;
        border-radius: 6px
    }

    .page-nav-button {
        font-size: .75em;
        padding: 6px 10px;
        margin: 4px
    }

    #myBook {
        width: auto;
        height: auto;
        box-shadow: 0 5px 20px rgba(0, 0, 0, .3);
        max-width: 100%;
        max-height: 100%;
        margin-left: 5%
    }
}

@media (max-width:1024px) {

    .main-wrapper,
    body,
    html {
        min-height: calc(var(--app-vh, 1vh)*100)
    }

    .main-wrapper {
        flex-direction: column;
        height: auto
    }

    .sidebar {
        min-height: 60px
    }

    .book-container {
        flex-direction: column;
        height: auto;
        min-height: 0
    }

    .page {
        width: 100%;
        max-width: 600px;
        max-height: none;
        position: relative
    }

    .mcq-option input[type=radio],
    .sidebar,
    body.mobile-bottom-nav-collapsed .bottom-nav-mobile .controls-row,
    body.mobile-bottom-nav-collapsed .bottom-nav-mobile .navigate-pill {
        display: none
    }

    .bottom-nav-mobile {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 10px 15px;
        width: 100%;
        box-sizing: border-box;
        z-index: 100;
        position: sticky;
        left: 0
    }

    .mobile-icon-btn {
        background: 0 0;
        border: 0;
        color: #fc840d;
        font-size: 2rem;
        cursor: pointer;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center
    }

    .gear-icon,
    .hamburger-icon {
        line-height: 1
    }

    .mobile-auth-pill {
        margin-bottom: 0;
        padding: 6px 12px;
        box-shadow: 0 4px 6px rgba(0, 0, 0, .2)
    }

    .mobile-auth-pill .user-info-text {
        max-width: 120px
    }

    .mobile-auth-pill .login-register-text {
        font-size: .8rem
    }

    .mobile-auth-pill .user-email {
        font-size: .75rem
    }

    .mobile-auth-pill .logout-text-btn {
        font-size: .7rem
    }

    .bottom-nav-mobile {
        background-color: transparent;
        height: auto;
        margin-top: 10px;
        flex-direction: column;
        gap: 15px
    }

    .mobile-bottom-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 38px;
        margin: 0;
        border-radius: 10px;
        background-color: #fc840d !important;
        color: #fff;
        font-size: 1.15rem;
        font-weight: 800;
        line-height: 1;
        box-shadow: 0 3px 6px rgba(0, 0, 0, .18);
        transition: background-color .2s, transform .2s
    }

    .mobile-bottom-toggle:hover {
        background-color: #e06e00 !important;
        transform: translateY(-1px)
    }

    .mobile-bottom-toggle:active {
        transform: translateY(1px)
    }

    body.mobile-bottom-nav-collapsed .bottom-nav-mobile {
        gap: 8px
    }

    .mobile-controls-row {
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
        background: 0 0;
        padding: 0
    }

    .mobile-bottom-toggle-row {
        width: 100%;
        max-width: 400px;
        margin: -4px auto 0;
        display: flex;
        justify-content: center
    }

    .mobile-page-indicator {
        font-size: 1.1rem;
        font-weight: 700;
        color: #fc840d;
        text-transform: uppercase
    }

    .mobile-navigate-pill {
        width: 90%;
        max-width: 400px;
        margin: 0 auto;
        box-shadow: 0 4px 6px rgba(0, 0, 0, .2)
    }

    .kata-pengantar,
    .kata-pengantar-footer-text {
        font-size: .6rem
    }

    .page-padding {
        padding: 1rem 2rem
    }

    .list-TF li,
    ol li {
        font-size: 100%
    }

    body {
        padding: 10px;
        overflow-x: hidden;
        overflow-y: auto
    }

    #myBook {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: auto;
        box-shadow: 0 5px 20px rgba(0, 0, 0, .3);
        max-height: 100%;
        margin-left: 0 !important;
        margin-right: 0 !important
    }

    .main-content-wrapper {
        flex-direction: column;
        padding: 10px;
        height: auto;
        min-height: 90vh;
        justify-content: flex-start
    }

    .flip-book-container {
        flex-direction: column;
        width: 100%;
        min-height: 0;
        max-height: calc(var(--app-vh, 1vh)*100);
        overflow: auto
    }

    .sidebar {
        width: 100%;
        max-width: 700px;
        margin-right: 0;
        margin-bottom: 20px;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        align-self: center;
        height: auto;
        padding: 10px
    }

    .sidebar h3 {
        width: 100%;
        margin-bottom: 10px;
        font-size: 1em
    }

    .page-nav-button {
        flex: 1 1 auto;
        max-width: 120px;
        font-size: .85em;
        padding: 8px 12px
    }

    .observation-box-left p {
        font-size: 90%
    }

    .submit-button {
        padding: 3% 6%;
        font-size: 100%;
        margin-left: 2%
    }

    .question-TF,
    .question-TF-2 {
        margin-bottom: .2vw
    }

    .question-TF h3,
    .question-TF-2 h3 {
        font-size: 4vw;
        margin-bottom: .5vw
    }

    .question-TF ol,
    .question-TF-2 ol {
        margin-top: 2vw;
        margin-bottom: .2vw;
        padding: 0 0 0 4vw
    }

    .options {
        gap: 4vw
    }

    ul.list-TF {
        margin: 0
    }

    .list-TF li {
        width: 100%
    }

    #pageQuiz-TF-1-1 p,
    #pageQuiz-TF-2-1 p {
        font-size: 100%;
        margin-top: 0;
        margin-bottom: 0
    }

    #pageQuiz-TF-1-1 p.quiz-instruction,
    #pageQuiz-TF-2-1 p.quiz-instruction,
    .quiz-instruction.pilihan-ganda {
        margin-top: 16%
    }

    .quiz-instruction {
        margin-top: 14%
    }

    .quizpage-inner .question p:first-child {
        font-size: 100%
    }

    #QuizPage-1 .quiz-instruction,
    .btn,
    .btn-2,
    ul.list-instruction-penilaian-akhir {
        font-size: 100%
    }

    .list-instruction-penilaian-akhir li {
        font-size: 100%;
        line-height: 100%
    }

    .btn,
    .btn-2 {
        padding: 1vw 4vw;
        border-radius: .2vw
    }

    .answer-box-TF,
    .answer-box-TF-2 {
        padding: .2vw .4vw;
        border-radius: .2vw;
        font-size: 80%
    }

    .score {
        font-size: 80%;
        margin-top: 6vw
    }

    .reset-btn,
    .reset-btn-2 {
        margin: 1vw auto 0;
        padding: 2vw 4vw;
        font-size: 100%
    }

    #gameContainer-1 h1 {
        margin-bottom: 0
    }

    .option {
        margin-bottom: .5vw
    }

    .option span {
        width: 6%;
        font-size: 80%;
        background-color: #ccc;
        color: #fff;
        font-weight: 700;
        text-align: center;
        border-radius: 5px;
        padding: .5vw 0
    }

    .option p {
        width: 90%;
        font-size: .8vw;
        background-color: #fff;
        transition: all .2s ease;
        text-align: left;
        cursor: pointer;
        margin: 0;
        margin-left: 1vw;
        font-weight: 400
    }

    .item,
    .option,
    .question-block ol li {
        font-size: 100%
    }

    .container {
        gap: 7vw
    }

    .column {
        gap: 1.5vw
    }

    .score-box {
        font-size: 100%;
        margin-top: 5vw
    }

    .match-submit-btn {
        font-size: 100%;
        padding: 1vw 1.4vw
    }

    .summary {
        top: -25%;
        left: 30%;
        width: 35%;
        font-size: 10%;
        border-radius: 2vw;
        padding: 1vw 2vw
    }

    .summary-first {
        top: -17% !important
    }

    .summary-second {
        top: -20% !important
    }

    .summary p,
    .summary span {
        margin: 0;
        font-size: 2.5vw;
        color: #0d0d0d
    }

    .summary-right span {
        padding-left: 2vw
    }

    .summary-left {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        margin-top: .7vw
    }

    .summary-left p {
        font-size: 2.5vw;
        line-height: 2vw;
        font-weight: 500
    }

    .summary-left span {
        font-size: 4vw
    }

    .summary-right {
        margin-left: 2vw
    }

    .summary-mobile {
        display: flex
    }

    .question-block {
        margin-bottom: 1.5vw
    }

    .question-block p {
        font-size: 100%;
        margin-bottom: .3vw
    }

    .question-block textarea {
        width: 60%;
        min-height: 4vw;
        padding: 1.5vw 2vw;
        font-size: 100%;
        margin-bottom: 2vw;
        margin-left: 1vw
    }

    .submit-btn {
        padding: 1.5vw 2vw;
        border-radius: 8px;
        font-size: 80%;
        margin-left: .5vw;
        margin-bottom: .5vw
    }

    .answer-box {
        padding: 1vw 2vw;
        margin-left: .7vw
    }

    .answer-toggle {
        margin-bottom: .2vw;
        font-size: 80%
    }

    .answer-text {
        font-size: 80%
    }

    .arrow {
        font-size: 2vw
    }

    .question-block ol {
        padding-left: 1vw;
        margin: 0;
        margin-bottom: 1vw
    }

    .modal-box {
        width: 80%;
        height: 30%
    }

    .modal-box h1 {
        margin-bottom: 10%;
        font-size: 54px;
        font-family: "Titan One", sans-serif;
        font-weight: 400;
        font-style: normal;
        color: #303030
    }

    .modal-box-text {
        position: absolute;
        top: 17%;
        left: 57%
    }

    .modal-box button {
        padding: 16px 24px;
        font-size: 18px;
        border: 0;
        border-radius: 6px;
        background-color: #007bff;
        color: #fff;
        cursor: pointer
    }

    :fullscreen .page {
        width: 100%
    }

    :-webkit-full-screen .page {
        width: 100%
    }

    :-moz-full-screen .page {
        width: 100%
    }

    .mcq-option {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 4px;
        cursor: pointer;
        line-height: 1.5
    }

    .mobile-auth-wrapper,
    .mobile-nav-toggle {
        display: initial
    }
}

@media (max-width:767px) {

    .option,
    .quizpage-inner h1 {
        font-size: 100%
    }

    .quizpage-inner {
        position: absolute;
        top: 8%;
        left: 10%;
        width: 80%;
        max-height: 84%;
        overflow-y: auto;
        overflow-x: hidden;
        padding-bottom: 2rem;
    }

    .question-block ol li,
    .quizpage-inner h3 {
        font-size: 70%
    }

    .quizpage-inner p.column-title {
        font-size: 70%;
        height: 10%;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center
    }

    #QuizPage-1 .quiz-instruction,
    #pageQuiz-TF-1-1 p,
    #pageQuiz-TF-2-1 p,
    .list-TF li,
    .observation-box-left p,
    .quizpage-inner .option p,
    .quizpage-inner p,
    ol li {
        font-size: 60%
    }

    .guide-question-match {
        margin: 2%auto
    }

    .toc-header {
        margin-top: 15%
    }

    .page-badge,
    .toc-item {
        padding: 1%0;
        font-size: 70%;
        margin-left: 5%
    }

    .page-badge {
        font-size: 80%;
        padding: 1%
    }

    .observation-box-left {
        border-top-left-radius: 15px;
        border-bottom-left-radius: 15px
    }

    .input-area {
        height: 70%
    }

    .input-area textarea {
        font-size: 60%;
        height: 80%
    }

    .error-message {
        margin-top: 5px;
        font-size: 80%
    }

    .submit-button {
        padding: 3%;
        font-size: 80%;
        margin-left: 2%
    }

    .answer-box-observation,
    .match-submit-btn,
    .score-box,
    ul.list-instruction-penilaian-akhir {
        font-size: 80%
    }

    #pageQuiz-TF-1-1 p.quiz-instruction,
    #pageQuiz-TF-2-1 p.quiz-instruction,
    .quiz-instruction {
        margin-top: 16%
    }

    .list-instruction-penilaian-akhir li {
        font-size: 80%;
        line-height: 100%
    }

    .quizpage-inner .question p:first-child {
        font-size: 70%;
        line-height: 110%
    }

    .answer-box-TF,
    .answer-box-TF-2,
    .btn,
    .btn-2 {
        padding: 1vw 4vw;
        font-size: 60%;
        border-radius: .2vw
    }

    .answer-box-TF,
    .answer-box-TF-2 {
        margin-top: 1%;
        padding: .2vw .4vw
    }

    .score {
        font-size: 60%;
        margin-top: 6vw
    }

    .reset-btn,
    .reset-btn-2 {
        font-size: 80%
    }

    .question-TF,
    .question-TF-2 {
        margin-bottom: 3%
    }

    .summary {
        top: 0%;
        font-size: 20%
    }

    .summary p,
    .summary span {
        font-size: 3vw
    }

    .summary-first {
        top: -17% !important
    }

    .item {
        padding: 1% 4%;
        border: 1px solid #2c93d6;
        border-radius: 1.5vw;
        font-size: 75%;
        cursor: pointer;
        transition: .3s;
        position: relative;
        text-align: left
    }

    .question-block p {
        font-size: 100%
    }

    .question-block textarea {
        width: 60%;
        min-height: 2vw;
        padding: 1.5vw 2vw;
        font-size: 70%;
        margin-bottom: 2vw;
        margin-left: 1vw
    }

    .submit-btn {
        padding: 3%;
        border-radius: 8px;
        font-size: 70%;
        margin-left: .5vw;
        margin-bottom: .5vw
    }

    .answer-box {
        padding: 1vw 2vw;
        margin-left: .7vw
    }

    .answer-toggle {
        margin-bottom: .2vw;
        font-size: 60%
    }

    .answer-text {
        font-size: 60%
    }

    .arrow {
        font-size: 2vw
    }

    .question-block ol {
        padding-left: 2vw;
        margin: 0;
        margin-bottom: 1vw
    }

    .modal-box {
        width: 80%;
        height: 20%
    }

    .modal-box h1 {
        margin-bottom: 10%;
        font-size: 32px;
        font-family: "Titan One", sans-serif;
        font-weight: 400;
        font-style: normal;
        color: #303030
    }

    .modal-box-text {
        position: absolute;
        top: 19%;
        left: 55%
    }

    .modal-box button {
        padding: 12px 16px;
        font-size: 12px;
        border-radius: 6px
    }

    .page-nav-button {
        font-size: .75em;
        padding: 6px 10px;
        margin: 4px
    }

    #myBook {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: auto;
        box-shadow: 0 5px 20px rgba(0, 0, 0, .3);
        max-height: 100%;
        margin-left: 0 !important;
        margin-right: 0 !important
    }
}

.quiz-page-container,
.score-page-container {
    padding: 30px;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    background-color: #f8fbff;
    color: #333;
    border-radius: inherit
}

.quiz-title {
    color: #fc840d;
    font-size: 1.8rem;
    margin-bottom: 5px;
    text-align: center;
    font-family: "Poppins", sans-serif;
    font-weight: 700
}

.quiz-subtitle {
    text-align: center;
    color: #555;
    margin-bottom: 25px;
    font-size: .95rem
}

.quiz-question-block {
    margin-bottom: 20px;
    background: #fff;
    padding: 15px;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .05)
}

.question-text {
    font-weight: 700;
    color: #fc840d;
    margin-bottom: 12px;
    font-size: 1rem
}

.quiz-option {
    display: block;
    margin-bottom: 8px;
    cursor: pointer;
    padding: 8px 12px;
    border-radius: 8px;
    transition: background .2s;
    font-size: .95rem
}

.quiz-option:hover {
    background-color: #e6f0fa
}

.quiz-option input {
    margin-right: 10px;
    cursor: pointer
}

.quiz-submit-button {
    transition: background .3s
}

.quiz-error-msg {
    color: #d32f2f;
    text-align: center;
    margin-top: 15px;
    font-weight: 700;
    font-size: .9rem
}

.score-circle,
.score-display-box {
    display: flex;
    align-items: center;
    justify-content: center
}

.score-display-box {
    flex-direction: column;
    flex-grow: 1
}

.score-circle {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background-color: #fc840d;
    color: #fff;
    font-size: 3rem;
    font-weight: 700;
    margin-bottom: 20px;
    box-shadow: 0 4px 12px rgba(32, 73, 117, .3)
}

.score-detail-text {
    font-size: 1.1rem;
    color: #333;
    margin-bottom: 15px;
    font-weight: 700
}

.score-success-msg {
    color: #2e7d32;
    font-size: 1rem;
    font-weight: 700;
    text-align: center
}

.quiz-not-completed-box {
    text-align: center;
    margin-top: 50px;
    color: #666;
    font-style: italic;
    padding: 20px
}

.auth-form,
.form-group {
    display: flex;
    flex-direction: column
}

.auth-form {
    gap: 15px;
    text-align: left
}

.form-group {
    gap: 5px
}

.form-group label {
    font-weight: 600;
    font-size: .9rem;
    color: #4a5568
}

.form-group input,
.submit-auth-btn {
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 1rem
}

.submit-auth-btn {
    margin-top: 10px;
    background-color: #fc840d;
    color: #fff;
    padding: 12px;
    border: 0;
    font-weight: 700;
    cursor: pointer
}

.submit-auth-btn:hover {
    background-color: #e06e00
}

.locked-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #000;
    z-index: 50;
    align-items: center;
    justify-content: center;
    color: #fff;
    border-radius: inherit
}

.locked-message-box {
    text-align: center;
    padding: 30px;
    background: rgba(32, 73, 117, .95);
    border-radius: 15px;
    width: 70%;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .5);
    border: 1px solid #4a6fa5
}

.lock-icon {
    font-size: 3rem;
    margin-bottom: 15px
}

.locked-message-box h3 {
    margin-bottom: 10px;
    margin-top: 0;
    font-size: 1.5rem;
    color: #fff;
    font-family: "Poppins", sans-serif
}

.locked-message-box p {
    font-size: .95rem;
    line-height: 1.5;
    color: #e0e6ed;
    margin: 0
}

.quiz-page-card {
    border: 4px solid #1a3c61;
    border-radius: 20px;
    position: absolute;
    top: 12px;
    bottom: 12px;
    left: 12px;
    right: 12px;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    box-sizing: border-box
}

.quiz-page-card ul li {
    text-align: left;
    font-size: 10px
}

.quiz-page-card.bg-light-blue {
    background-color: #f0f7fd
}

.quiz-page-card,
.quiz-page-card.bg-white {
    background-color: #fff
}

.quiz-header-badge {
    display: inline-flex;
    align-items: center;
    background-color: #e2d1eb;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: .68rem;
    font-weight: 700;
    color: #333;
    margin: 8px 10px 3px;
    width: max-content;
    box-shadow: 0 2px 4px rgba(0, 0, 0, .1)
}

.quiz-header-badge img {
    width: 18px;
    height: 18px;
    margin-right: 6px
}

.quiz-section-title {
    text-align: left;
    margin: 3px 10px;
    font-size: .85rem;
    color: #000;
    font-weight: 800
}

.quiz-main-title {
    text-align: left;
    margin: 0 10px 8px;
    font-size: .72rem;
    font-weight: 700;
    color: #1a3c61;
    text-transform: uppercase
}

.mcq-item,
.quiz-form-container {
    display: flex;
    flex-direction: column
}

.quiz-form-container {
    background-color: #fff;
    border-radius: 20px;
    flex-grow: 1;
    padding: 8px 10px;
    margin: 0 6px 6px;
    gap: 7px;
    overflow-y: auto
}

.quiz-page-card.no-header .quiz-form-container {
    margin: 6px;
    padding: 10px
}

.mcq-item {
    text-align: left
}

.mcq-question {
    font-size: .6rem;
    font-weight: 600;
    margin-bottom: 5px;
    line-height: 1.35;
    color: #111
}

.mcq-options-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 6px
}

.mcq-bubble,
.mcq-option {
    border: 2px solid #1a3c61;
    background-color: #fff
}

.mcq-option {
    display: inline-flex;
    align-items: center;
    border-radius: 25px;
    padding: 3px 9px;
    cursor: pointer;
    font-weight: 700;
    font-size: .6rem;
    color: #1a3c61;
    transition: all .2s;
    user-select: none
}

.mcq-option input[type=radio] {
    display: none
}

.mcq-bubble {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    margin-right: 5px;
    flex-shrink: 0;
    display: inline-block;
    position: relative
}

.mcq-option input[type=radio]:checked+.mcq-bubble::after {
    content: "";
    width: 8px;
    height: 8px;
    background-color: #1a3c61;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%)
}

.mcq-option input[type=radio]:checked {
    background-color: #e6f2fb
}

.quiz-submit-button {
    background-color: #fc840d;
    color: #fff;
    border: 0;
    border-radius: 30px;
    padding: 12px 0;
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
    width: 60%;
    margin: 15px auto;
    display: inline-block;
    letter-spacing: 1px
}

.quiz-submit-button:hover {
    background-color: #e06e00
}

.quiz-submit-button:disabled {
    background-color: #999;
    cursor: not-allowed
}

.qs-left,
.quiz-score-box {
    display: flex;
    align-items: center
}

.quiz-score-box {
    background-color: #ffe066;
    border-radius: 20px;
    padding: 10px 25px;
    justify-content: center;
    margin: 15px auto;
    gap: 15px;
    width: max-content;
    box-shadow: 0 4px 6px rgba(0, 0, 0, .1)
}

.qs-left {
    flex-direction: column
}

.qs-label {
    font-size: .9rem;
    font-weight: 700;
    color: #333
}

.qs-score {
    font-size: 2.2rem;
    font-weight: 800;
    color: #111;
    line-height: 1
}

.qs-right {
    display: flex;
    flex-direction: column;
    text-align: left;
    font-size: 1rem;
    font-weight: 700;
    color: #111
}

.video-container-12,
.video-container-13,
.video-container-14,
.video-container-15 {
    position: absolute;
    top: 20%;
    left: 9%;
    width: 82%;
    height: 5%;
    border-radius: 10px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .35);
    z-index: 10;
    border: 2px solid rgba(255, 255, 255, .2)
}

.video-container-13,
.video-container-14,
.video-container-15 {
    top: 46%;
    left: 12.5%;
    width: 75%;
    height: auto;
    overflow: hidden
}

.video-container-14,
.video-container-15 {
    top: 20%
}

.video-container-15 {
    top: 21%
}

.video-embed-header {
    background: #1a5f7a;
    color: #fff;
    padding: 8px 14px;
    font-family: "Montserrat", "Inter", sans-serif;
    font-size: .62rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 8px
}

.video-embed-body {
    position: relative;
    width: 100%;
    padding-top: 40%;
    background: #0f172a;
    height: 100%
}

.video-embed-body iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0
}

#myBook,
#myBook * {
    font-family: "Inter", sans-serif !important
}

.partial-lock-overlay {
    position: absolute;
    left: 0;
    width: 100%;
    background: #ddd;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100;
    user-select: none;
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    transition: opacity .5s ease-out;
    cursor: pointer
}

.page {
    position: relative
}

.partial-lock-overlay.hidden {
    opacity: 0;
    pointer-events: none
}

.partial-lock-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(17, 24, 39, .62)
}

.partial-lock-dialog {
    position: relative;
    width: min(94vw, 520px);
    max-height: 92vh;
    overflow-y: auto;
    background: #fff;
    color: #1f2937;
    border-radius: 8px;
    padding: 24px;
    box-shadow: 0 18px 48px rgba(15, 23, 42, .28)
}

.partial-lock-dialog h2 {
    margin: 0 0 8px;
    font-size: 1.25rem;
    line-height: 1.3
}

.partial-lock-dialog p {
    margin: 0 0 16px;
    color: #4b5563;
    font-size: .95rem
}

.partial-lock-close {
    position: absolute;
    top: 12px;
    right: 14px;
    border: 0;
    background: 0 0;
    color: #4b5563;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer
}

.partial-lock-input {
    display: none;
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 11px 12px;
    font-size: 1rem;
    outline: 0
}

.partial-lock-input:focus {
    border-color: #f7a422;
    box-shadow: 0 0 0 3px rgba(247, 164, 34, .22)
}

.partial-lock-input.text-mode {
    display: block
}

.partial-lock-answer-fields {
    display: grid;
    gap: 12px;
    margin: 8px 0 14px
}

.partial-lock-answer-fields.multiple {
    grid-template-columns: repeat(3, minmax(0, 1fr))
}

.partial-lock-answer-field {
    min-width: 0
}

.partial-lock-answer-label {
    display: block;
    margin-bottom: 6px;
    color: #334155;
    font-size: .82rem;
    font-weight: 700
}

.partial-lock-answer-fields.multiple .partial-lock-math-field {
    min-height: 64px;
    padding: 10px;
    font-size: 1.05rem
}

.partial-lock-error {
    margin-top: 10px;
    color: #b91c1c;
    font-size: .9rem
}

.partial-lock-math-field {
    width: 100%;
    min-height: 74px;
    box-sizing: border-box;
    padding: 14px;
    margin: 0;
    border: 2px solid #e2e8f0;
    border-radius: 8px;
    background: #fdfdfd;
    font-size: 1.35rem
}

.partial-lock-tabs {
    display: flex;
    gap: 5px;
    margin-bottom: 10px;
    padding: 5px;
    border-radius: 8px;
    background: #f1f5f9
}

.partial-lock-tab-btn {
    flex: 1;
    min-width: 0;
    padding: 8px;
    border: 0;
    border-radius: 6px;
    background: 0 0;
    color: #64748b;
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer
}

.partial-lock-tab-btn.active {
    background: #fff;
    color: #2563eb;
    box-shadow: 0 2px 4px rgba(15, 23, 42, .08)
}

.partial-lock-tab-content {
    display: none;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px
}

.partial-lock-tab-content.active {
    display: grid
}

.partial-lock-var-tab {
    grid-template-columns: repeat(6, minmax(0, 1fr))
}

.partial-lock-letter-container {
    display: contents
}

.partial-lock-calc-btn {
    min-width: 0;
    min-height: 42px;
    padding: 10px 4px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
    color: #1e293b;
    font-size: .92rem;
    font-weight: 700;
    cursor: pointer
}

.partial-lock-calc-btn:hover {
    background: #f1f5f9
}

.partial-lock-calc-btn-op {
    background: #eff6ff;
    color: #2563eb
}

.partial-lock-calc-btn-func {
    background: #f8fafc;
    font-size: .82rem
}

.partial-lock-calc-btn-accent {
    background: #6366f1;
    color: #fff
}

.partial-lock-calc-btn-del {
    background: #fff1f2;
    color: #e11d48
}

.partial-lock-calc-btn-wide {
    grid-column: span 2
}

.partial-lock-calc-btn-wide-3 {
    grid-column: span 3
}

.btn-lihat-jawaban,
.partial-lock-submit {
    color: #fff;
    border: 0;
    font-weight: 700;
    cursor: pointer
}

.partial-lock-submit {
    width: 100%;
    margin-top: 16px;
    border-radius: 6px;
    background: #f7a422;
    padding: 11px 16px
}

.partial-lock-submit:hover {
    background: #dc8f14
}

@media (max-width:640px) {
    .partial-lock-answer-fields.multiple {
        grid-template-columns: 1fr
    }
}

.btn-lihat-jawaban {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: min(220px, 100%);
    margin: 12px auto 0;
    padding: 10px 18px;
    border-radius: 999px;
    background: #1a5f7a;
    box-shadow: 0 10px 16px rgba(26, 95, 122, .18);
    font-size: 1rem;
    transition: background .2s ease, transform .2s ease, opacity .2s ease;
    font-family: inherit
}

.btn-lihat-jawaban:hover:not(:disabled) {
    background: #164e63;
    transform: translateY(-1px)
}

.btn-lihat-jawaban:disabled {
    background: #9ca3af;
    color: #fff;
    box-shadow: none;
    cursor: not-allowed;
    opacity: .85
}

.img-quiz {
    height: 120px;
    display: block
}

.math-frac,
.math-sqrt {
    display: inline-flex;
    vertical-align: middle;
    font-family: "Times New Roman", Times, serif;
    line-height: 1;
    font-size: .95em
}

.math-frac {
    flex-direction: column;
    align-items: center;
    text-align: center;
    line-height: 1.1;
    margin: 0 4px;
    font-size: .9em
}

.math-frac .top {
    border-bottom: 1px solid #000;
    padding: 0 3px 1px;
    width: 100%;
    box-sizing: border-box
}

.math-frac .bottom {
    padding: 1px 3px 0;
    width: 100%;
    box-sizing: border-box
}

.math-sqrt .tick {
    font-size: 1.1em;
    margin-right: -1px;
    padding-top: 1px;
    display: flex;
    align-items: center
}

.math-sqrt .vinculum {
    border-top: 1px solid #000;
    padding: 1px 3px 0 2px;
    margin-top: 2px
}

.math-frac i,
.math-sqrt i {
    font-style: italic;
    padding: 0 1px
}

.mobile-auth-header-top {
    display: none
}

    .mobile-guide-steps > li:last-child {
        margin-bottom: 18px;
    }

@media (max-width:1024px) {
    .mobile-auth-header-top {
        display: flex;
        justify-content: center;
        width: 100%;
        margin-bottom: 15%;
        margin-top: 15px;
        padding: 0 15px;
        box-sizing: border-box;
        z-index: 1000;
        position: relative
    }

    .mobile-auth-pill-top {
        display: flex;
        align-items: center;
        background-color: #fc840d;
        color: #fff;
        border: 0;
        border-radius: 40px;
        padding: 8px 15px;
        width: 100%;
        max-width: 300px;
        box-shadow: inset 0 2px 5px rgba(0, 0, 0, .2), 0 4px 6px rgba(0, 0, 0, .3);
        cursor: pointer;
        font-family: inherit;
        gap: 12px;
        min-width: 0;
        flex: 1 1 auto
    }

    .mobile-auth-pill-top .avatar-circle {
        width: 35px;
        height: 35px;
        background-color: #f0f4f8;
        color: #fc840d;
        border-radius: 50%;
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 1.2rem;
        flex-shrink: 0
    }

    .mobile-auth-pill-top .login-text {
        font-size: .7rem;
        font-weight: 700;
        letter-spacing: .5px;
        color: #333;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .mobile-auth-pill-top .user-email {
        font-size: .85rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

    .mobile-auth-pill-top .logout-btn-top {
        background: rgba(255, 255, 255, .15);
        border: 1px solid rgba(255, 255, 255, .3);
        color: #fff;
        font-size: .75rem;
        padding: 4px 10px;
        border-radius: 15px;
        cursor: pointer;
        transition: background .3s
    }
}

.mobile-modal {
    position: fixed;
    z-index: 99999;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, .8)
}

.mobile-modal-content {
    background-color: #fffbea;
    padding: 25px;
    border-radius: 12px;
    width: 85%;
    max-width: 400px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, .5);
    position: relative;
    max-height: 90vh;
    overflow-y: auto
}

.mobile-modal-content .close-button {
    position: absolute;
    top: 15px;
    right: 20px;
    font-size: 28px;
    font-weight: 700;
    color: #aaa;
    cursor: pointer
}

.mobile-modal-content .close-button:hover {
    color: #333
}

.mobile-modal-content h2 {
    color: #fc840d;
    margin-top: 0;
    margin-bottom: 20px;
    text-align: center
}

@media (max-width:1024px) {

    #loginModal,
    #registerModal {
        display: none !important
    }

    .mobile-auth-header-top {
        justify-content: space-between;
        align-items: center;
        gap: 8px;
        padding-right: 12px;
        padding-left: 12px
    }

    .mobile-burger-btn {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;
        background: #fc840d;
        border: 0;
        border-radius: 10px;
        padding: 10px 12px;
        cursor: pointer;
        flex-shrink: 0;
        box-shadow: 0 2px 6px rgba(0, 0, 0, .3);
        width: 46px;
        height: 46px
    }

    .mobile-burger-btn span {
        display: block;
        width: 22px;
        height: 2.5px;
        background-color: #fff;
        border-radius: 2px;
        transition: all .3s ease
    }

    .mobile-burger-btn:active span {
        background-color: #a0cfff
    }

    .mobile-toc-content {
        background-color: #fff;
        max-height: 80vh;
        padding: 0;
        overflow: hidden;
        display: flex;
        flex-direction: column
    }

    .mobile-toc-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 16px 20px;
        background: #fc840d;
        border-radius: 12px 12px 0 0;
        position: sticky;
        top: 0
    }

    .mobile-toc-header h2 {
        color: #fff;
        margin: 0;
        font-size: 1.1rem;
        text-align: left
    }

    .mobile-toc-header .close-button {
        position: static;
        color: rgba(255, 255, 255, .8);
        font-size: 28px;
        font-weight: 700;
        cursor: pointer;
        line-height: 1
    }

    .mobile-toc-header .close-button:hover {
        color: #fff
    }

    .mobile-toc-list {
        list-style: none;
        padding: 10px 0;
        margin: 0;
        overflow-y: auto;
        flex: 1
    }

    .mobile-toc-list li a {
        display: block;
        padding: 13px 20px;
        color: #1a3c61;
        text-decoration: none;
        font-size: .9rem;
        border-bottom: 1px solid #f0f4f8;
        transition: background .2s;
        text-align: left
    }

    .mobile-toc-list li a:active,
    .mobile-toc-list li a:hover {
        background-color: #e8f0fe;
        color: #fc840d
    }

    .mobile-toc-list li.mobile-toc-chapter a {
        font-weight: 700;
        background-color: #f5f8ff;
        color: #fc840d;
        border-left: 4px solid #fc840d;
        padding-left: 16px
    }

    .mobile-toc-list li.mobile-toc-chapter a:hover {
        background-color: #dce8ff
    }

    .mobile-auth-pill-top {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 6px 10px !important;
        min-width: 0
    }

    .mobile-dashboard-link {
        border: 0;
        margin: 0;
        color: #333;
        font-size: .95rem;
        font-weight: 700;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        text-decoration: none
    }

    .mobile-dashboard-link:hover {
        color: #fc840d
    }

    .mobile-logout-btn {
        font-size: 1.2rem
    }

    .mobile-blank-modal-btn:active {
        background-color: #1673c7;
        transform: scale(.95)
    }

    .mobile-logout-btn:active,
    .mobile-refresh-btn:active {
        background-color: #e0e0e0;
        transform: scale(.95)
    }

    .mobile-logout-btn,
    .mobile-refresh-btn {
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: #f0f0f0;
        border: 1px solid #ddd;
        border-radius: 8px;
        cursor: pointer;
        color: #333;
        transition: all .2s ease;
        flex-shrink: 0
    }

    .mobile-blank-modal-btn {
        width: 46px;
        height: 46px;
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: #1e9bf0;
        border: 0;
        border-radius: 10px;
        cursor: pointer;
        color: #fff;
        box-shadow: 0 2px 6px rgba(0, 0, 0, .3);
        transition: all .2s ease;
        flex-shrink: 0
    }

    .mobile-blank-modal-btn svg {
        display: block
    }

    .mobile-blank-modal-content {
        width: min(92vw, 410px);
        max-height: 88vh;
        min-height: 0;
        padding: 0;
        overflow: hidden;
        border-radius: 18px;
        background: #fff;
        box-shadow: 0 18px 36px rgba(0, 0, 0, .38);
        border: 2px solid rgba(255, 255, 255, .82);
        display: flex;
        flex-direction: column
    }

    .mobile-blank-modal-header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
        padding: 20px 20px 17px;
        background: #2467e8;
        color: #fff;
        flex-shrink: 0
    }

    .mobile-blank-modal-header h2 {
        margin: 0;
        color: #fff;
        text-align: left;
        text-transform: uppercase;
        font-size: clamp(1rem, 4.5vw, 1.15rem);
        line-height: 1.12;
        font-weight: 800;
        letter-spacing: 0
    }

    .mobile-blank-modal-info-icon {
        display: none
    }

    .mobile-blank-modal-close {
        width: 32px;
        height: 32px;
        border: 0;
        border-radius: 8px;
        background: transparent;
        color: #fff;
        font-size: 20px;
        line-height: 1;
        cursor: pointer;
        flex-shrink: 0
    }

    .mobile-blank-modal-close:active {
        background: rgba(255, 255, 255, .16)
    }

    .mobile-blank-modal-body {
        position: relative;
        padding: 24px 22px 30px;
        color: #596270;
        font-size: .92rem;
        line-height: 1.55;
        overflow-y: auto;
        max-height: min(54vh, 420px);
        scrollbar-width: thin;
        overscroll-behavior: contain
    }

    .mobile-blank-modal-body p {
        margin: 0 0 18px;
        text-align: left;
    }


    .mobile-guide-highlight {
        color: #1969f5;
        font-weight: 800
    }

    .mobile-guide-steps {
        display: grid;
        gap: 15px;
        margin: 0;
        padding: 0;
        list-style: none
    }

    .mobile-guide-steps li {
        display: grid;
        grid-template-columns: 30px 1fr;
        gap: 12px;
        align-items: flex-start
    }

    .mobile-guide-steps span {
        width: 26px;
        height: 26px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: #ff8617;
        color: #fff;
        font-size: .8rem;
        font-weight: 800
    }

    .mobile-guide-steps p {
        margin: 2px 0 0;
        font-size: .83rem;
        line-height: 1.38
    }

    .mobile-blank-scroll-cue {
        position: absolute;
        left: 50%;
        bottom: 82px;
        width: 30px;
        height: 30px;
        transform: translateX(-50%);
        pointer-events: none;
        opacity: 0;
        transition: opacity .2s ease
    }

    .mobile-blank-scroll-cue::before {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: 999px;
        background: rgba(255, 255, 255, .9);
        box-shadow: 0 4px 14px rgba(0, 0, 0, .16)
    }

    .mobile-blank-scroll-cue::after {
        content: "";
        position: absolute;
        top: 9px;
        left: 10px;
        width: 9px;
        height: 9px;
        border-right: 3px solid #2467e8;
        border-bottom: 3px solid #2467e8;
        transform: rotate(45deg)
    }

    .mobile-blank-modal-content.has-more-content .mobile-blank-scroll-cue {
        opacity: 1
    }

    .mobile-blank-modal-footer {
        padding: 18px 20px 20px;
        background: #fff;
        box-shadow: 0 -12px 22px rgba(255, 255, 255, .92);
        flex-shrink: 0
    }

    .mobile-blank-modal-footer button {
        width: 100%;
        min-height: 50px;
        border: 0;
        border-radius: 12px;
        background: #ff8617;
        color: #fff;
        font-weight: 800;
        font-size: .92rem;
        text-transform: uppercase;
        cursor: pointer;
        box-shadow: 0 8px 16px rgba(255, 134, 23, .34)
    }

    .mobile-blank-modal-footer button:active {
        transform: translateY(1px);
        background: #f1790f
    }

    .mobile-refresh-btn svg {
        display: block
    }
}

.modal-zoom-img {
    max-width: 90%;
    max-height: 90%;
    border-radius: 8px;
    object-fit: contain;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .5);
    transition: transform .2s ease;
    transform: scale(1.5);
    background-color: #fff
}

@media (max-width:768px) {
    .modal-zoom-img {
        transform: scale(1)
    }
}

.mobile-modal {
    display: none;
    justify-content: center;
    align-items: center
}

.mobile-guide-coachmark {
    --guide-target-top: 16px;
    --guide-target-left: 16px;
    --guide-target-width: 46px;
    --guide-target-height: 46px;
    --guide-panel-top: 76px;
    --guide-panel-left: 16px;
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: none;
    pointer-events: none
}

.mobile-guide-coachmark.is-active {
    display: block
}

.mobile-guide-spotlight {
    position: fixed;
    top: calc(var(--guide-target-top) - 8px);
    left: calc(var(--guide-target-left) - 8px);
    width: calc(var(--guide-target-width) + 16px);
    height: calc(var(--guide-target-height) + 16px);
    border-radius: 16px;
    box-shadow: 0 0 0 9999px rgba(0, 0, 0, .72), 0 0 0 3px rgba(255, 255, 255, .94), 0 12px 34px rgba(0, 0, 0, .38);
    transition: top .18s ease, left .18s ease, width .18s ease, height .18s ease
}

.mobile-guide-coach-panel {
    position: fixed;
    top: var(--guide-panel-top);
    left: var(--guide-panel-left);
    width: min(250px, calc(100vw - 32px));
    padding: 14px;
    border-radius: 12px;
    background: #fff;
    color: #253044;
    text-align: left;
    box-shadow: 0 16px 36px rgba(0, 0, 0, .28);
    pointer-events: auto
}

.mobile-guide-coach-panel::before {
    content: "";
    position: absolute;
    top: -9px;
    left: 115px;
    width: 18px;
    height: 18px;
    background: #fff;
    transform: rotate(45deg)
}

.mobile-guide-coach-panel p {
    position: relative;
    margin: 0 0 11px;
    font-size: .98rem;
    line-height: 1.35;
    font-weight: 800;
    color: #1e3a5f;
}

.mobile-guide-coach-panel button {
    position: relative;
    min-width: 96px;
    min-height: 40px;
    border: 0;
    border-radius: 9px;
    background: #ff8617;
    color: #fff;
    font-weight: 800;
    font-size: .92rem;
    cursor: pointer;
    box-shadow: 0 7px 15px rgba(255, 134, 23, .28)
}

.mobile-guide-coach-panel button:hover {
    background: #f1790f
}

.mobile-blank-modal-btn.is-guide-highlighted {
    animation: guidePulse 1.25s ease-in-out infinite
}

@keyframes guidePulse {
    0%,
    100% {
        transform: scale(1)
    }

    50% {
        transform: scale(1.06)
    }
}

@media (max-width:767px) {
    .mobile-guide-coach-panel {
        width: min(200px, calc(100vw - 28px));
        padding: 12px;
        border-radius: 10px
    }

    .mobile-guide-coach-panel p {
        font-size: .92rem
    }

    .mobile-guide-coach-panel button {
        width: 100%
    }
}

[id^=pageQuiz-TF] .container-TF {
    top: 6%;
    left: 8%;
    width: 84%;
    display: flex;
    flex-direction: column;
    color: #1f2937
}

[id^=pageQuiz-TF] .quiz-instruction {
    margin-top: 18%;
    margin-bottom: 12px !important;
    padding: 9px 12px;
    background: rgba(255, 255, 255, .88);
    border: 1px solid rgba(31, 41, 55, .12);
    border-left: 4px solid #1a5f7a;
    border-radius: 8px;
    line-height: 1.35
}

[id^=pageQuiz-TF] .list-TF li,
[id^=pageQuiz-TF] ol li,
[id^=pageQuiz-TF] p {
    font-size: 11px;
    line-height: 1.32
}

[id^=pageQuiz-TF] p {
    margin: 0
}

[id^=pageQuiz-TF] .list-TF {
    margin: -2px 0 2px;
    padding-left: 22px
}

[id^=pageQuiz-TF] .question-TF,
[id^=pageQuiz-TF] .question-TF-2 {
    margin: 0;
    padding: 8px;
    text-align: left;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 3px 10px rgba(15, 23, 42, .08);
    gap: 6px
}

[id^=pageQuiz-TF] .question-TF ol,
[id^=pageQuiz-TF] .question-TF-2 ol {
    margin: 0 0 6px;
    padding-left: 20px
}

[id^=pageQuiz-TF] .question-TF li,
[id^=pageQuiz-TF] .question-TF-2 li {
    padding-left: 2px
}

[id^=pageQuiz-TF] .options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    margin: 0 0 6px
}

[id^=pageQuiz-TF] .btn,
[id^=pageQuiz-TF] .btn-2 {
    width: 100%;
    min-height: 28px;
    padding: 6px 8px;
    border: 1px solid rgba(31, 41, 55, .18);
    border-radius: 6px;
    background: #fff;
    color: #1f2937;
    box-shadow: none;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer
}

[id^=pageQuiz-TF] .btn-2:hover:not(:disabled),
[id^=pageQuiz-TF] .btn:hover:not(:disabled) {
    border-color: #1a5f7a;
    background: #eef8fb
}

[id^=pageQuiz-TF] .btn-2.correct,
[id^=pageQuiz-TF] .btn.correct {
    background-color: #1f9d55;
    border-color: #1f9d55;
    color: #fff
}

[id^=pageQuiz-TF] .btn-2.wrong,
[id^=pageQuiz-TF] .btn.wrong {
    background-color: #dc2626;
    border-color: #dc2626;
    color: #fff
}

[id^=pageQuiz-TF] .btn-2:disabled,
[id^=pageQuiz-TF] .btn:disabled {
    cursor: default
}

[id^=pageQuiz-TF] .answer-box-TF,
[id^=pageQuiz-TF] .answer-box-TF-2 {
    display: none
}

[id^=pageQuiz-TF] .btn-lihat-jawaban {
    display: block;
    width: 50%;
    margin: 0 auto;
    padding: 4px 8px;
    border-radius: 999px;
    background: #1a5f7a;
    color: #fff;
    font-size: .7rem;
    text-align: center;
    cursor: not-allowed;
    transition: background .2s ease, transform .2s ease, opacity .2s ease
}

[id^=pageQuiz-TF] .btn-lihat-jawaban:hover:not(:disabled) {
    background: #164e63;
    transform: translateY(-1px)
}

[id^=pageQuiz-TF] .btn-lihat-jawaban:disabled {
    opacity: .75;
    background: #9ca3af;
    color: #fff;
    box-shadow: none
}

[id^=pageQuiz-TF] .btn-lihat-jawaban:not(:disabled) {
    cursor: pointer
}

[id^=pageQuiz-TF] .score,
#pageQuizMatch .score {
    margin: 2px 0 0;
    padding: 8px 10px;
    background: rgba(26, 95, 122, .1);
    border-radius: 8px;
    color: #164e63;
    font-size: 13px;
    line-height: 1.2
}

[id^=pageQuiz-TF] .reset-btn,
[id^=pageQuiz-TF] .reset-btn-2,
#pageQuizMatch .reset-btn-2 {
    width: 100%;
    margin: 0;
    padding: 8px 10px;
    border-radius: 7px;
    background: #1a5f7a;
    color: #fff;
    font-size: 12px;
    font-weight: 700
}

#tfExplanationModal h3 {
    font-size: .7rem
}

#essaypage-1 .answer-box,
#essaypage-2 .answer-box {
    display: none
}

#essaypage-1 .essay-explanation-btn,
#essaypage-2 .essay-explanation-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 50%;
    margin: 0 auto;
    margin-left: 1rem;
    padding: 4px 8px;
    border: 0;
    border-radius: 999px;
    background: #1a5f7a;
    color: #fff;
    box-shadow: 0 10px 16px rgba(26, 95, 122, .18);
    font-family: inherit;
    font-size: .7rem;
    cursor: pointer;
    transition: background .2s ease, transform .2s ease, opacity .2s ease
}

#essaypage-1 .essay-explanation-btn:hover:not(:disabled),
#essaypage-2 .essay-explanation-btn:hover:not(:disabled) {
    background: #164e63;
    transform: translateY(-1px)
}

#essaypage-1 .essay-explanation-btn:disabled,
#essaypage-2 .essay-explanation-btn:disabled {
    background: #9ca3af;
    color: #fff;
    box-shadow: none;
    cursor: not-allowed;
    opacity: .85
}

@media (max-width:1024px) {
    .btn-lihat-jawaban .essay-explanation-btn {
        font-size: 1rem;
    }

    .main-wrapper {
        min-height: calc(var(--app-vh, 1vh)*100);
        height: auto;
        overflow-x: hidden;
        overflow-y: auto
    }

    .flip-book-container {
        flex: 0 1 auto;
        width: 100%;
        min-height: 0;
        max-height: none;
        overflow: visible;
        align-items: center;
        justify-content: center
    }

    #myBook {
        width: fit-content !important;
        max-width: 100% !important;
        height: fit-content !important;
        max-height: none !important;
        margin-left: auto !important;
        margin-right: auto !important;
        transform-origin: center top
    }

    #myBook .stf__parent {
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important
    }

    #myBook.stf__parent.--portrait {
        width: fit-content !important;
        max-width: 100% !important
    }

}

@media (max-width:767px) {

    #essaypage-1 .question-block,
    #essaypage-2 .question-block {
        display: flex;
        flex-wrap: wrap;
        align-items: stretch;
        gap: .4rem;
        width: 100%
    }

    #essaypage-1 .question-block ol,
    #essaypage-2 .question-block ol {
        flex: 0 0 100%;
        margin-bottom: 0
    }

    #essaypage-1 .question-block textarea,
    #essaypage-2 .question-block textarea {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
        height: 2rem;
        margin: 0;
        float: none;
        clear: none;
        box-sizing: border-box;
        resize: none
    }

    #essaypage-1 .question-block .submit-btn,
    #essaypage-2 .question-block .submit-btn {
        flex: 0 0 auto;
        width: auto;
        min-width: 64px;
        margin: 0;
        float: none;
        clear: none;
        white-space: nowrap
    }

    #essaypage-1 .essay-explanation-btn,
    #essaypage-2 .essay-explanation-btn {
        flex: 0 0 100%;
        width: min(50%, 220px);
        margin: 0 auto;
        float: none;
        clear: both
    }
}

@media (max-width:767px) {
    [id^=pageQuiz-TF] .container-TF {
        top: 8%;
        left: 6%;
        width: 88%;
        gap: 0
    }

    [id^=pageQuiz-TF] .quiz-instruction {
        padding: 7px 9px
    }

    [id^=pageQuiz-TF] .list-TF li,
    [id^=pageQuiz-TF] ol li,
    [id^=pageQuiz-TF] p {
        font-size: 10px;
        line-height: 1.25
    }

    [id^=pageQuiz-TF] .question-TF,
    [id^=pageQuiz-TF] .question-TF-2 {
        padding: 6px
    }

    [id^=pageQuiz-TF] .btn,
    [id^=pageQuiz-TF] .btn-2 {
        min-height: 24px;
        padding: 5px 6px;
        font-size: 10px
    }

    [id^=pageQuiz-TF] .answer-box-TF,
    [id^=pageQuiz-TF] .answer-box-TF-2 {
        min-height: 30px;
        padding: 6px 7px;
        font-size: 9.5px
    }
}

:is(#pageQuiz-TF-1-1, #pageQuiz-TF-1-2, #pageQuiz-TF-1-3, #pageQuiz-TF-2-1, #pageQuiz-TF-2-2, #pageQuiz-TF-2-3) .list-TF li,
:is(#pageQuiz-TF-1-1, #pageQuiz-TF-1-2, #pageQuiz-TF-1-3, #pageQuiz-TF-2-1, #pageQuiz-TF-2-2, #pageQuiz-TF-2-3) ol li,
:is(#pageQuiz-TF-1-1, #pageQuiz-TF-1-2, #pageQuiz-TF-1-3, #pageQuiz-TF-2-1, #pageQuiz-TF-2-2, #pageQuiz-TF-2-3) p {
    font-size: 11px;
    line-height: 1.32
}

@media (max-width:767px) {

    :is(#pageQuiz-TF-1-1, #pageQuiz-TF-1-2, #pageQuiz-TF-1-3, #pageQuiz-TF-2-1, #pageQuiz-TF-2-2, #pageQuiz-TF-2-3) .list-TF li,
    :is(#pageQuiz-TF-1-1, #pageQuiz-TF-1-2, #pageQuiz-TF-1-3, #pageQuiz-TF-2-1, #pageQuiz-TF-2-2, #pageQuiz-TF-2-3) ol li,
    :is(#pageQuiz-TF-1-1, #pageQuiz-TF-1-2, #pageQuiz-TF-1-3, #pageQuiz-TF-2-1, #pageQuiz-TF-2-2, #pageQuiz-TF-2-3) p {
        font-size: 10px;
        line-height: 1.25
    }
}

.summary.summary-middle {
    left: 30%
}

/* Zoom Book Features */
#myBook {
    transform: scale(var(--book-zoom, 1));
    transform-origin: left top;
    transition: transform 0.18s ease;
    position: relative;
    z-index: 1;
}

body.book-zoomed .flip-book-container {
    justify-content: flex-start;
    align-items: flex-end;
    cursor: grab;
    touch-action: none;
}

body.book-zoomed .flip-book-container.is-zoom-panning {
    cursor: grabbing;
}

body.book-zoomed .stf__parent {
    touch-action: none;
}

body.book-zoomed .sidebar {
    position: relative;
    z-index: 20;
}

.zoom-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 0 15px;
}

.zoom-btn {
    width: 42px;
    height: 38px;
    border: none;
    border-radius: 10px;
    background-color: #fc840d;
    color: #fff;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.18);
    transition: background-color 0.2s, transform 0.2s;
}

.zoom-btn:hover {
    background-color: #fc840d;
    transform: translateY(-1px);
}

.zoom-btn:active {
    transform: translateY(1px);
}

.zoom-btn:disabled {
    cursor: not-allowed;
    opacity: 0.45;
    transform: none;
}

.zoom-reset-btn {
    width: 52px;
    font-size: 0.9rem;
}

.zoom-level {
    min-width: 54px;
    color: #fc840d;
    font-size: 0.92rem;
    font-weight: 800;
    text-align: center;
}

@media (max-width: 767px) {
    .mobile-zoom-controls {
        width: 100%;
        max-width: 400px;
        margin: -4px auto 0;
    }
}

@media (max-width: 1024px) {
    body.book-zoomed #myBook {
        transform-origin: left top !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body.book-zoomed .flip-book-container {
        overflow: auto !important;
    }

    body.book-zoomed .main-wrapper {
        overflow-x: auto !important;
    }
}

/* Scoreboard Styling for Multiple Choice Quizzes */
.quiz-scoreboard {
    display: none;
    /* Hidden on desktop */
}

@media (max-width: 1024px) {
    .quiz-scoreboard {
        position: absolute;
        top: 20px;
        left: 20px;
        display: inline-flex;
        align-items: center;
        background-color: #ffffff;
        border: 1px solid #fc840d;
        color: #fc840d;
        padding: 3px 8px;
        font-size: 10px;
        font-weight: 700;
        border-radius: 5px;
        box-shadow: 0 2px 6px rgba(252, 132, 13, 0.15);
        z-index: 100;
        white-space: nowrap;
        line-height: 1.2;
        pointer-events: none;
        letter-spacing: 0.2px;
    }

    .quiz-scoreboard span {
        color: #333333;
        font-weight: 800;
        margin-left: 2px;
    }

    .quiz-scoreboard .score-summary {
        color: #fc840d;
    }

    .quiz-scoreboard span::after {
        content: " \2022 ";
        color: #fc840d;
        opacity: 0.5;
        margin: 0 6px;
    }

    .quiz-scoreboard span:last-child::after {
        content: "";
        margin: 0;
    }

    /* Hide the old redundant quiz summaries on mobile multiple choice pages */
    [id^="QuizPage-"] .summary-mobile,
    [id^="QuizPage-"] .summary {
        display: none !important;
    }
}
