@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.png);
    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
}

.page.active {
    display: block
}

.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
    }
}

.sidebar::-webkit-scrollbar {
    display: none
}

.controls-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px
}

.control-btn,.zoom-controls {
    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
}

.zoom-controls {
    gap: 8px;
    margin: 0 0 15px
}

.zoom-btn {
    width: 42px;
    height: 38px;
    border: 0;
    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,.18);
    transition: background-color .2s,transform .2s
}

.zoom-btn:hover {
    background-color: #e06e00;
    transform: translateY(-1px)
}

.zoom-btn:active {
    transform: translateY(1px)
}

.zoom-btn:disabled {
    cursor: not-allowed;
    opacity: .45;
    transform: none
}

.zoom-reset-btn {
    width: 52px;
    font-size: .9rem
}

.zoom-level {
    min-width: 54px;
    color: #fc840d;
    font-size: .92rem;
    font-weight: 800;
    text-align: center
}

.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-page);
    margin-left: auto
}

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
}

.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
}

.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
}

#myBook {
    width: auto;
    height: auto;
    box-shadow: 0 5px 20px rgba(0,0,0,.3);
    max-width: 100%;
    max-height: 100%;
    margin-left: 5%;
    transform: scale(var(--book-zoom, 1));
    transform-origin: left top;
    transition: transform .18s ease;
    position: relative;
    z-index: 1
}

body.book-zoomed .flip-book-container {
    justify-content: flex-start;
    align-items: flex-start;
    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
}

.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: 60%
}

.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: -18%;
    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: 1
}

.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
}

#zoomReminder {
    position: fixed;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #fff3cd;
    color: #856404;
    border: 1px solid #ffeeba;
    padding: 16px 24px;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,.1);
    font-family: sans-serif;
    font-size: 16px;
    z-index: 9999;
    display: none
}

#zoomReminder button {
    margin-left: 12px;
    background: #fff;
    border: 0;
    color: #856404;
    font-weight: 700;
    cursor: pointer
}

@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
    }

    .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,.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-zoom-controls {
        width: 100%;
        max-width: 400px;
        margin: -4px auto 0
    }

    .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
    }

    .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,.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: -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: 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: 1vw;
        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
}

@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
    }

    .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
    }

    .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: 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-right: 12px
    }

    .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-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-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
}

[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 {
    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 {
    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%
}
