/* 공통 */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td, button {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    vertical-align: baseline;
    background: transparent;
    box-sizing: border-box;
    font-size:100%;
    font-family: inherit;
}

body.web {
    background: #f5efe6;
    font-family: 'Pretendard', sans-serif;
}

.desktop:not(.login) .wrap#web,
.tablet:not(.login) .wrap#web,
.smartphone:not(.login) .wrap#mobile {
    background: no-repeat center bottom;
    background-size: contain;
    background-image: url(../img/web/bg.svg);
}

#web button {
    color: inherit;
}

#web img {
    pointer-events: none;
}

.desktop .wrap#web {
    overflow: visible;
}

#web .contents-left {
    width: 120px;
    height: 100%;
    transition: all 0.2s ease-in-out;
    background: #5162b8;
    border-radius: 0 40px 40px 0;
    position: relative;
    padding: 0 8px;
    float: left;
}

#web .contents-left.close {
    width: 80px;
}

.desktop.web .contents-left::after {
    content: '';
    width: 100vw;
    height: 100%;
    background: #5162b8;
    position: absolute;
    left: 0;
    top: 0;
    transform: translateX(-100%);
}

.login #web .contents-left,
.login #web .contents-right {
    display: none;
}

#web .nav {
    gap: 8px;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

#web .nav li {
    width: 100%;
    aspect-ratio: 1/1;
    border-radius: 24px;
    display: flex;
}

#web .nav li:first-child {
    background: url(../img/web/nav_1_off.svg) no-repeat top 17px center;
}
#web .nav li:nth-child(2) {
    background: url(../img/web/nav_2_off.svg) no-repeat top 11px center;
}
#web .nav li:nth-child(3) {
    background: url(../img/web/nav_3_off.svg) no-repeat top 12px center;
}
#web .nav li:nth-child(4) {
    background: url(../img/web/nav_4_off.svg) no-repeat top 13px center;
}

#web .nav li.active {
    background-color: #28358f;
}
#web .nav li:first-child.active {
    background-image: url(../img/web/nav_1_on.svg);
}
#web .nav li:nth-child(2).active {
    background-image: url(../img/web/nav_2_on.svg);
}
#web .nav li:nth-child(3).active {
    background-image: url(../img/web/nav_3_on.svg);
}
#web .nav li:nth-child(4).active {
    background-image: url(../img/web/nav_4_on.svg);
}

#web .nav li button {
    width: 100%;
    height: 100%;
    font-size: 18px;
    letter-spacing: -0.72px;
    color: #b4c0ff;
    font-weight: 500;
    padding-top: 67px;
    display: inline-flex;
    align-items: flex-start;
    justify-content: center;
    transition: all 0.2s ease-in-out;
}

#web .nav li.active button {
    color: #fff;
}

#web .close .nav li {
    background-size: 40px 40px;
    background-position: center;
}

#web .close .nav li button {
    font-size: 0;
    padding: 0;
    color: transparent;
}

#web .nav-btn {
    width: 24px;
    height: 82px;
    border: 2px solid #ccc;
    background: #eee;
    position: absolute;
    right: -24px;
    top: calc(50% - 41px);
    border-radius: 0 8px 8px 0;
    z-index: 1;
}

#web .nav-btn::after {
    content: '';
    width: 9px;
    height: 12px;
    background: url(../img/web/nav_arrow.svg) no-repeat center;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    transition: 0.2s ease-in-out;
}

#web .header .user-list .nav-user {
    width: 34px;
    border: 3px solid #8f7156;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: -0.6px;
    color: #8f7156;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

#web .nav-user span {
    font-size: 0;
}

#web .nav-link {
    position: absolute;
    left: 50%;
    bottom: 75px;
    transform: translateX(-50%);
    font-size: 16px;
    font-weight: 500;
    color: #fff;
    letter-spacing: -0.64px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    width: 100%;
    opacity: 1;
    transition: 0.2s ease-in-out;
}

#web .nav-link::after {
    content: '';
    width: 24px;
    height: 24px;
    background: url(../img/web/nav_link_arrow.png) no-repeat center #28358f;
    background-size: 66.66%;
    border-radius: 50%;
}

#web .close .nav-link {
    font-size: 0;
}

#web .close .nav-btn::after,
#mobile .close .nav-btn::after {
    transform: rotate(180deg) translate(50%, 50%);
}

#web .contents-right {
    width: calc(100% - 120px);
    height: 72px;
    transition: all 0.2s ease-in-out;
    float: left;
}

#web .contents-right + div:not(#login) {
    width: calc(100% - 120px);
    height: calc(100% - 72px);
    float: left;
    padding: 40px;
    transition: all 0.2s ease-in-out;
    position: relative;
}

#web .contents-right + div:not(#login).popup-on {
    z-index: 1;
}

#web .contents-left.close + .contents-right,
#web .contents-left.close + .contents-right + div:not(#login) {
    width: calc(100% - 80px);
}

#web .header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 72px;
    padding: 0 40px;
    border-bottom: 1px solid #d7cdbe;
    position: relative;
}

.desktop.web .header::after {
    content: '';
    width: 100vw;
    height: 1px;
    background: #d7cdbe;
    position: absolute;
    right: 0;
    bottom: -1px;
    transform: translateX(100%);
}

#web .header .logo {
    height: 40px;
    background: url(../img/web/logo.svg) no-repeat left center;
    font-size: 26px;
    letter-spacing: -1.04px;
    font-weight: bold;
    padding-left: 141px;
}

#web .header .right {
    display: flex;
    align-items: center;
}

#web .header .user-name {
    font-size: 20px;
    margin-right: 8px;
    letter-spacing: -0.8px;
    font-weight: 600;
}

#web .header .user-point {
    height: 24px;
    padding: 0 8px;
    border-radius: 8px;
    background: #f58b45;
    font-size: 16px;
    color: #fff;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

#web .header .user-list {
    display: flex;
}

#web .header .calendar-modal {
    position: fixed;
    top: 68px;
    right: 70px;
    width: 424px;

    -webkit-animation-name: openPop;
    animation-name: openPop;
    -webkit-animation-duration: 0.2s;
    animation-duration: 0.2s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

#web .header .calendar-modal.close {
    -webkit-animation-name: closePop;
    animation-name: closePop;
}

#web .header .calendar-modal .bottom {
    padding: 10px;
}

#web .header .calendar-modal li {
    padding: 13px 16px;
    background: #fbf3ec;
    border-radius: 8px;
    display: flex;
    font-size: 18px;
    color: #3d2416;
    font-weight: 600;
}

#web .header .calendar-modal li + li {
    margin-top: 8px;
}

#web .header .calendar-modal li > span {
    color: #f58b45;
    letter-spacing: -0.72px;
    font-weight: 500;
    width: 126px;
    flex-shrink: 0;
}

#web .header .calendar-modal img {
    max-width: 24px;
    max-height: 28px;
}

#web .header .calendar-modal img.plum {
    position: relative;
    top: -3px;
}

#web .header .calendar-modal li div {
    display: flex;
    flex-wrap: wrap;
}

#web .header .calendar-modal li div p {
    margin-bottom: 16px;
    width: 100%;
}

#web .header .calendar-modal li div span {
    display: inline-flex;
    align-items: center;
    margin-right: 20px;
    gap: 8px;
}

#web .header .user-list button {
    margin-left: 30px;
    font-size: 0;
    height: 28px;
    position: relative;
}

#web .header .user-list .attendance {
    width: 28px;
    background: url(../img/web/header_1.svg) no-repeat center;
}
#web .header .user-list .notice {
    width: 25px;
    background: url(../img/web/header_2.svg) no-repeat center;
}
#web .header .user-list .registration {
    width: 26px;
    background: url(../img/web/header_3.svg) no-repeat center;
}
#web .header .user-list .preference {
    width: 28px;
    background: url(../img/web/header_4.png) no-repeat center;
    background-size: 107%;
}
#web .header .user-list .logout {
    width: 28px;
    background: url(../img/web/header_5.svg) no-repeat center;
}


#web .header .user-list .attendance.active {
    background-image: url(../img/web/header_1_on.svg);
}
#web .header .user-list .notice.active {
    background-image: url(../img/web/header_2_on.svg);
}
#web .header .user-list .registration.active {
    background-image: url(../img/web/header_3_on.svg);
}
#web .header .user-list .preference.active {
    background-image: url(../img/web/header_4_on.png);
}

#web .header .user-list button.active::after {
    content: '';
    width: 48px;
    height: 3px;
    background: #f58b45;
    position: absolute;
    left: 50%;
    bottom: -21px;
    transform: translateX(-50%);
}

#web .header .user-list em.active {
    width: 8px;
    height: 8px;
    background: #f58b45;
    border-radius: 50%;
    position: absolute;
    right: 0;
    top: 0;
}

.desktop #web .header .user-list button:hover span {
    position: absolute;
    background: url(../img/web/header_hover.svg) no-repeat center;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: -0.64px;
    color: #3d2416;
    width: 100px;
    height: 62px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-right: 9px;
    left: calc(50% + 4px);
    top: 100%;
    transform: translateX(-50%);
    z-index: 1;
}

.desktop #web .header .user-list button.small:hover span {
    background-image: url(../img/web/header_hover_s.svg);
}

#web .contents-wrap {
    width: 100%;
    height: calc(100% - 72px);
    padding: 40px;
}

#web .contents-wrap-whole,
#mobile .contents-wrap-whole {
    width: 100%;
    height: 100%;
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 16px 0 rgba(61, 36, 22, 0.12);
}

#mobile .contents-wrap-whole {
    border-radius: 0.9375vw;
    padding: 1.5625vw;
    box-shadow: 0 0.3125vw 1.25vw 0 rgba(61, 36, 22, 0.12);
}

#web .tab-list {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

#web .tab-list button {
    width: 160px;
    height: 48px;
    border-radius: 24px;
    border: 2px solid #3951cc;
    background: #fff;
    color: #3951cc;
    font-size: 20px;
    transition: 0.2s ease-in-out;
    font-weight: 600;
    letter-spacing: -0.8px;
}

#web .tab-list .active button {
    background: #28358f;
    border-color: #28358f;
    color: #fff;
    font-weight: 500;
}

#web .tab-list .none button {
    background: #e3dbce;
    border-color: #e3dbce;
    color: #b5afa5;
    pointer-events: none;
    font-weight: 500;
}

#web .contents-box {
    width: 100%;
    height: calc(100% - 72px);
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    margin-top: 24px;
    box-shadow: 0 4px 16px 0 rgba(61, 36, 22, 0.12);
}

#web .btn {
    display: inline-flex;
    height: 48px;
    padding: 0 20px;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: -0.8px;
    border: 1px solid;
    border-radius: 4px;
    min-width: 150px;
}

#web .btn-s {
    height: 44px;
    min-width: 75px;
    font-size: 18px;
}

#web .btn-toggle,
#mobile .btn-toggle {
    width: 18px;
    height: 9px;
    background: url(../img/web/toggle_arrow.svg) no-repeat center;
    background-size: 100%;
    margin-left: 8px;
    transition: 0.2s ease-in-out;
}

#mobile .btn {
    display: inline-flex;
    height: 3.75vw;
    padding: 0 1.5625vw;
    justify-content: center;
    align-items: center;
    font-size: 1.5625vw;
    font-weight: 500;
    letter-spacing: -0.8px;
    border: 1px solid;
    border-radius: 4px;
    min-width: 11.71875vw;
}

#mobile .btn-s {
    height: 3.4375vw;
    min-width: 5.859375vw;
    font-size: 1.40625vw;
}

#mobile .btn-toggle {
    width: 1.40625vw;
    height: 0.703125vw;
    margin-left: 0.625vw;
}

@media screen and (max-width: 430px) {
    #mobile .btn {
        height: 3.75vh;
        padding: 0 1.5625vh;
        font-size: 1.5625vh;
        min-width: 11.71875vh;
    }

    #mobile .btn-s {
        height: 3.4375vh;
        min-width: 5.859375vh;
        font-size: 1.40625vh;
    }

    #mobile .btn-toggle {
        width: 1.40625vh;
        height: 0.703125vh;
        margin-left: 0.625vh;
    }
}

#web .btn-blue,
#mobile .btn-blue {
    border-color: #3951cc;
    background: #3951cc;
    color: #fff;
}

#web .btn-blue:disabled,
#mobile .btn-blue:disabled {
    color: rgba(255, 255, 255, 0.4);
}

#web .btn-blue-border,
#mobile .btn-blue-border {
    border-color: #3951cc;
    background: #fff;
    color: #3951cc;
}

#web .btn-gray,
#mobile .btn-gray {
    border-color: #ccc;
    background-color: #eee;
    color: #444;
}

#web .btn-toggle.active,
#mobile .btn-toggle.active {
    transform: rotate(180deg);
}

#web .table,
#mobile .table {
    width: 100%;
}

#web .table th {
    height: 36px;
    background: #a39b90;
    border: 1px solid #8b8377;
    border-top: 2px solid #3d3425;
    border-bottom-width: 2px;
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    vertical-align: middle;
    letter-spacing: -0.32px;
}

#web .table td {
    border: 1px solid #dddddd;
    padding: 16px;
    vertical-align: middle;
    font-size: 18px;
    letter-spacing: -0.36px;
    color: #444;
}

#web input[type="text"],
#web input[type="password"],
#web input[type="number"] {
    width: 100%;
    height: 44px;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 0 10px;
    box-sizing: border-box;
    font-size: 18px;
    font-family: inherit;
    letter-spacing: -0.72px;
}

#mobile input[type="text"],
#mobile input[type="password"],
#mobile input[type="number"] {
    width: 100%;
    height: 3.4375vw;
    border: 1px solid #ccc;
    border-radius: 0.3125vw;
    padding: 0 0.78125vw;
    box-sizing: border-box;
    font-size: 1.40625vw;
    font-family: inherit;
    letter-spacing: -0.05625vw;
}

@media screen and (max-width: 430px) {
    #mobile input[type="text"],
    #mobile input[type="password"],
    #mobile input[type="number"] {
        height: 3.4375vh;
        border-radius: 0.3125vh;
        padding: 0 0.78125vh;
        font-size: 1.40625vh;
        letter-spacing: -0.05625vh;
    }
}

#web input[type="text"]::placeholder,
#web input[type="password"]::placeholder,
#web input[type="number"]::placeholder,
#mobile input[type="text"]::placeholder,
#mobile input[type="password"]::placeholder,
#mobile input[type="number"]::placeholder {
    color: #ccc;
}

#web input[type="text"]:disabled,
#web input[type="password"]:disabled,
#web input[type="number"]:disabled,
#mobile input[type="text"]:disabled,
#mobile input[type="password"]:disabled,
#mobile input[type="number"]:disabled {
    background: #eee;
    color: #aaa;
}

#web input[type="number"]::-webkit-outer-spin-button,
#web input[type="number"]::-webkit-inner-spin-button,
#mobile input[type="number"]::-webkit-outer-spin-button,
#mobile input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

#web input[type="checkbox"],
#mobile input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance:none;
    width: 24px;
    height: 24px;
    border: 2px solid #ccc;
    background: #fff no-repeat center;
    border-radius: 4px;
    cursor: pointer;
    margin: 0;
}

#mobile input[type="checkbox"] {
    width: 1.875vw;
    height: 1.875vw;
    border-radius: 0.3125vw;
    border-width: 0.15625vw;
}

@media screen and (max-width: 430px) {
    #mobile input[type="checkbox"] {
        width: 1.875vh;
        height: 1.875vh;
        border-radius: 0.3125vh;
        border-width: 0.15625vh;
    }
}

#web input[type="checkbox"]:checked,
#mobile input[type="checkbox"]:checked {
    background-color: #3951cc;
    background-image: url(../img/web/check_w.png);
    border-color: #3951cc;
    background-size: 72%;
}

#web input[type="checkbox"]:disabled,
#mobile input[type="checkbox"]:disabled {
    border-color: #ccc;
    background-color: #eee;
    cursor: default;
}

#web input[type="checkbox"]:checked:disabled,
#mobile input[type="checkbox"]:checked:disabled {
    background-image: url(../img/web/check_g.png);
}

#web input[type="checkbox"].small {
    width: 20px;
    height: 20px;
    background-size: 12px;
}

#mobile input[type="checkbox"].small {
    width: 1.5625vw;
    height: 1.5625vw;
    background-size: 0.9375vw;
}

@media screen and (max-width: 430px) {
    #mobile input[type="checkbox"].small {
        width: 1.5625vh;
        height: 1.5625vh;
        background-size: 0.9375vh;
    }
}

#web .select-wrap,
#mobile .select-wrap {
    position: relative;
    width: 100%;
    background: #fff;
}

#web .select-wrap::before,
#web .select-wrap::after {
    content: '';
    width: 12px;
    height: 7px;
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    transition: all 0.2s ease-in-out;
}

#web .select-wrap::before,
#mobile .select-wrap::before {
    background: url(../img/web/select_arrow_blue.svg) no-repeat center;
    opacity: 0;
}

#web .select-wrap::after,
#mobile .select-wrap::after {
    background: url(../img/web/select_arrow.svg) no-repeat center;
}

#web .select-top,
#mobile .select-top {
    width: 100%;
    height: 44px;
    border: 1px solid #a39e96;
    border-radius: 4px;
    padding: 0 30px 0 10px;
    text-align: left;
    font-size: 18px;
    letter-spacing: -0.72px;
    font-weight: 500;
    position: relative;
    z-index: 1;
}

#web .select-bottom,
#mobile .select-bottom {
    position: absolute;
    left: 0;
    top: calc(100% + 4px);
    width: 100%;
    background: #fff;
    opacity: 0;
    backface-visibility: hidden;
    transition: 0.2s ease-in-out;
    z-index: -1;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-shadow: 4px 4px 8px 0 rgba(0, 0, 0, 0.12);
    padding: 8px 0;
    font-size: 18px;
    letter-spacing: -0.72px;
    font-weight: 500;
    display: none;
}

#web .select-bottom li {
    cursor: pointer;
}

#web .select-bottom li,
#mobile .select-bottom li {
    padding: 8px 10px;
}

#web .select-bottom li.gray,
#mobile .select-bottom li.gray {
    background: #f6f6f6;
}

#web .select-bottom li .box,
#mobile .select-bottom li .box {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
}

#web .active .select-bottom,
#mobile .active .select-bottom {
    opacity: 1;
    backface-visibility: visible;
    z-index: 1;
    display: block;
}

#web .select-check .select-bottom,
#mobile .select-check .select-bottom {
    padding: 0;
}

#web .select-check .select-bottom li,
#mobile .select-check .select-bottom li {
    display: flex;
    align-items: center;
    padding: 10px;
    gap: 10px;
    position: relative;
}


#web .select-check .select-bottom li input,
#mobile .select-check .select-bottom li input {
    flex-shrink: 0;
}

#web .select-check .select-bottom li label,
#mobile .select-check .select-bottom li label {
    cursor: inherit;
    width: 100%;
}

#web .select-check .select-bottom li + li,
#mobile .select-check .select-bottom li + li {
    border-top: 1px solid #ddd;
    margin-top: 0;
}

#web .select-wrap.active::before,
#web .select-wrap.active::after,
#mobile .select-wrap.active::before,
#mobile .select-wrap.active::after {
    transform: translateY(-50%) rotate(180deg);
    opacity: 0;
}

#web .select-wrap.active::before,
#mobile .select-wrap.active::before {
    opacity: 1;
}

#web .select-wrap.active .select-top,
#mobile .select-wrap.active .select-top {
    border-color: #3951cc;
}

#web .select-wrap.big .select-top {
    height: 48px;
    font-size: 20px;
}

#web .select-wrap.big .select-bottom {
    font-size: 20px;
}

#web .event-none,
#mobile .event-none {
    pointer-events: none;
}

#web ::-webkit-scrollbar {
    width: 10px;
}

#mobile ::-webkit-scrollbar {
    width: 3px;
}

#web ::-webkit-scrollbar-track,
#mobile ::-webkit-scrollbar-track {
    margin: 5px;
    background-color: #dad7d2;
    border-radius: 5px;
}

#web ::-webkit-scrollbar-thumb,
#mobile ::-webkit-scrollbar-thumb  {
    border-radius: 5px;
    background-color: #8b8377;
}

#web .popup-wrap,
#mobile .popup-wrap {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 10000vw;
    height: 10000vh;
    background: rgba(0, 0, 0, 0.64);
    z-index: 10;

    -webkit-animation-name: openPop;
    animation-name: openPop;
    -webkit-animation-duration: 0.2s;
    animation-duration: 0.2s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

#web .popup-wrap.close,
#mobile .popup-wrap.close  {
    -webkit-animation-name: closePop;
    animation-name: closePop;
}

#web .popup,
#mobile .popup {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 16px 16px 24px 0 rgba(0, 0, 0, 0.24);
}

#web .popup-top {
    display: flex;
    height: 46px;
    align-items: center;
    justify-content: space-between;
    border-bottom: 2px solid #eee;
    padding: 0 16px;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: -0.72px;
}

#web .popup-top button {
    width: 15px;
    height: 15px;
    background: url(../img/web/popup_close.svg) no-repeat center;
}

#web .popup-middle {
    padding: 20px;
}

#web .popup-bottom {
    height: 66px;
    border-top: 2px solid #ddd;
    background: #f6f6f6;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

#web .popup-bottom .btn-gray {
    background-color: #eee;
}

@keyframes openPop {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes closePop {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

#web .calendar-top,
#mobile .calendar-top {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    position: relative;
}

#web .calendar-top .left,
#mobile .calendar-top .left {
    margin-right: auto;
    font-size: 18px;
    color: #666;
    font-weight: 500;
}

#web .calendar-top .left span,
#mobile .calendar-top .left span {
    display: inline-flex;
    align-items: center;
    background: #a37d62;
    color: #fff;
    height: 27px;
    padding: 0 12px;
    border-radius: 16px;
    margin-left: 4px;
    font-size: 16px;
    font-weight: 500;
}

#web .calendar-choice,
#mobile .calendar-choice {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 600;
    letter-spacing: -0.48px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
}

#web .calendar-choice.static,
#mobile .calendar-choice.static {
    position: static;
    transform: none;
}

#web .calendar-choice p {
    width: 160px;
    text-align: center;
}

#web .calendar-button {
    width: 12px;
    height: 20px;
    background: url(../img/web/calendar-arrow.svg) no-repeat center;
}

#web .calendar-next,
#mobile .calendar-next {
    transform: rotate(180deg);
}

#web .calendar-top .right,
#mobile .calendar-top .right {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    font-size: 18px;
    font-weight: 500;
    margin-left: auto;
    color: #666;
    letter-spacing: -0.72px;
}

#web .calendar-top .right span,
#mobile .calendar-top .right span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    height: 27px;
    border-radius: 16px;
    background: #a37d62;
    color: #fff;
    margin-left: 4px;
}

#web .calendar-bottom,
#mobile .calendar-bottom {
    width: 100%;
}

#web .calendar-bottom col,
#mobile .calendar-bottom col {
    transition: all 0.2s ease-in-out;
}

#web .contents-left + .contents-right + div .calendar-bottom col:nth-child(-n + 6) {
    width: calc(1039px / 7);
}

#web .contents-left.close + .contents-right + div .calendar-bottom col:nth-child(-n + 6) {
    width: calc(1079px / 7);
}

#web .calendar-bottom td {
    height: 86px;
    border: 1px solid #ddd;
    border-bottom: 0;
    position: relative;
    cursor: pointer;
}

#web .calendar-td,
#mobile .calendar-td {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
}

#web .calendar-td .num,
#mobile .calendar-td .num {
    position: absolute;
    right: 0;
    top: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 23px;
    width: 23px;
    border: 1px solid #ddd;
    border-top: 0;
    border-right: 0;
    padding: 0 0 1px 1px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.14px;
}

#web .calendar-bottom td:first-child .calendar-td .num,
#mobile .calendar-bottom td:first-child .calendar-td .num {
    color: #ff5e5e;
}

#web .calendar-bottom td.other,
#mobile .calendar-bottom td.other {
    background: #f6f6f6;
}

#web .calendar-bottom td.other .calendar-td .num,
#mobile .calendar-bottom td.other .calendar-td .num {
    color: #ddd;
}

#web .calendar-bottom td.today,
#mobile .calendar-bottom td.today {
    background: #fff9f5;
}

#web .calendar-bottom td.today .calendar-td,
#mobile .calendar-bottom td.today .calendar-td {
    border: 2px solid #f58b45;
}

#web .calendar-bottom td.today .calendar-td .num,
#mobile .calendar-bottom td.today .calendar-td .num {
    border-color: #f58b45;
    background: #f58b45;
    color: #fff;
    z-index: 1;
    height: 22px;
    width: 22px;
    padding: 0;
    top: -1px;
    right: -1px;
}

#web .calendar-modal {
    position: absolute;
    z-index: 6;
    border-radius: 8px;
    box-shadow: 4px 4px 8px 0 rgba(0, 0, 0, 0.12);
}

#web .calendar-modal::after {
    content: '';
    width: 25px;
    height: 25px;
    background: #f58b45;
    border-radius: 5px;
    position: absolute;
    top: -7px;
    left: 40px;
    transform: rotate(45deg);
    z-index: -1;
}

#web .calendar-modal .top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 30px;
    background: #f58b45;
    padding: 0 10px;
    border-radius: 8px 8px 0 0;
}

#web .calendar-modal .top p {
    color: #fff;
    font-size: 18px;
    font-weight: 500;
    letter-spacing: -0.72px;
}

#web .calendar-modal .top button {
    width: 20px;
    height: 20px;
    background: url(../img/web/header_close.svg) no-repeat center;
}

#web .calendar-modal .bottom {
    border: 2px solid #f58b45;
    background: #fff;
    padding: 10px 15px;
    font-size: 18px;
    border-radius: 0 0 8px 8px;
}

/* 공지사항 팝업 */

#web .popup-notice {
    position: fixed;
    background-color: #fff;
    color: #000;
    border-radius: 8px;
    box-shadow: 0 13px 27px -5px rgba(50,50,93,.25), 0 8px 16px -8px rgba(0,0,0,.3);
    max-width: 450px;
    overflow: hidden;
}

#web .popup-notice-wrap {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    z-index: 11;
}

#mobile .popup-notice-wrap {
    position: absolute;
    width: 100vh;
    height: auto;
    aspect-ratio: 16/9;
    top: -9.72%;
    left: -9.375%;
    transform: none;
    z-index: 11;
}

#web .popup-notice-header {
    height: 40px;
    border-top-right-radius: 8px;
    border-top-left-radius: 8px;
    padding-left: 12px;
    display: flex;
    align-items: center;
    background-color: #00a37f;
}

#web .popup-notice-header p {
    font-size: 18px;
    letter-spacing: -.04em;
    line-height: 26px;
    color: #fff;
    width: calc(100% - 40px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#web .popup-notice-header button {
    width: 20px;
    height: 20px;
    background: url(../img/web/header_close.svg) no-repeat center;
}

#web .popup-notice-inner {
    width: 450px;
    max-height: 650px;
    overflow: auto;
    word-break: keep-all;
    padding: 10px;
    cursor: grab;
}

#web .popup-notice-inner img {
    width: 100%;
    display: block;
}

#web .popup-notice-inner p {
    font-size: 18px;
    word-break: break-word;
    white-space: normal;
}

#web .popup-scroll {
    width: 100%;
    height: 10%;
    position: absolute;
}

#web .popup-notice-footer {
    height: 50px;
    background-color: #f6f6f6;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom-right-radius: 8px;
    border-bottom-left-radius: 8px;
    padding: 20px;
}

#web .popup-notice-footer div {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 18px;
    cursor: pointer;
}

#web .popup-notice-footer button {
    font-size: 15px;
    letter-spacing: -.04em;
    line-height: 22px;
    height: 30px;
    border-radius: 4px;
    padding: 0 20px;
    justify-content: center;
    align-items: center;
    display: inline-flex;
    white-space: nowrap;
    border: 1px solid #ccc;
}


/* 메인 */
#main .tab-contents {
    position: relative;
    z-index: 0;
}

#main .classroom-today {
    text-align: center;
    font-size: 28px;
    color: #3d2416;
    font-weight: 600;
    margin: 45px 0 41px;
    position: relative;
}

#main .classroom-slide-wrap {
    position: relative;
    max-width: 980px;
    margin: 0 auto;
    left: 20px;
}

#main .classroom-slide-wrap::after {
    content: '';
    width: 9px;
    height: 275px;
    background: #f5efe6;
    position: absolute;
    right: -1px;
    top: 0;
    z-index: 1;
}

#main .classroom-item .top {
    margin-bottom: 12px;
    aspect-ratio: 214/275;
    width: 100%;
    max-width: 213px;
}

#main .classroom-item img {
    border-radius: 12px;
    width: 100%;
    height: 100%;
    object-fit: cover;
    box-shadow: 8px 8px 16px 0 rgba(0, 0, 0, 0.2);
}

#main .classroom-item .bottom {
    text-align: center;
    font-size: 22px;
    color: #3d2416;
    font-weight: 600;
    height: 57px;
    line-height: 1.36;
    max-width: 213px;
    width: 100%;
}

#main .swiper {
    min-height: 340px;
    left: -7px;
}

#main .swiper.center .swiper-wrapper {
    justify-content: center;
}

#main .swiper-slide {
    width: 220px;
    margin-right: 25px;
}

#main .swiper-slide.passed::after {
    content: '';
    width: 96px;
    height: 52px;
    background: url(../img/web/classroom_com.png) no-repeat center;
    position: absolute;
    left: 0;
    top: 206px;
}

#main .swiper-pagination {
    position: relative;
    display: flex;
    margin: 23px auto 0;
    width: 360px;
    height: 4px;
    border-radius: 2px;
    background: #ccbeab;
    top: 0;
    left: -18px;
}

#main .swiper-pagination-bullet {
    width: 100%;
    height: 100%;
    margin: 0;
    background: transparent;
    border-radius: 2px;
}

#main .swiper-pagination-bullet-active {
    background: #222222;
}

#main .swiper-pagination-bullet:only-child {
    display: block !important;
}

#main .classroom-top {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin: 40px 0;
}

#main .classroom-top-item {
    height: 49px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.6);
    width: 27.6%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: #3d2416;
    font-weight: 600;
    gap: 16px;
}

#main .classroom-top-item.long {
    width: 40.37%;
}

#main .classroom-top-item span {
    color: #f58b45;
    font-size: 18px;
    letter-spacing: -0.72px;
    font-weight: 500;
}

#main .classroom-top-item p {
    min-height: 20px;
}

#main .popup-btn-wrap {
    width: 322px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 70px;
    padding: 10px 0;
}

#main .popup-btn {
    font-size: 20px;
    font-weight: 600;
    display: flex;
    flex-direction: column;
    align-items: center;
}

#main .popup-btn img {
    margin-bottom: 8px;
}

#main .classroom-item {
    cursor: pointer;
    display: flex;
    flex-direction: column;
    /* justify-content: flex-end; */
    align-items: flex-end;
}

#main .classroom-pop {
    display: flex;
    align-items: center;
}

#main .classroom-pop div {
    width: 125px;
    height: 160px;
    margin-right: 16px;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 8px 8px 16px 0 rgba(0, 0, 0, 0.2);
}

#main .classroom-pop div img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#main .classroom-pop ul {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

#main .classroom-pop ul li {
    height: 48px;
    background: #fbf3ec;
    border-radius: 8px;
    display: flex;
    align-items: center;
    font-size: 18px;
    padding-left: 16px;
    width: 375px;
}

#main .classroom-pop ul li p {
    width: 124px;
    flex-shrink: 0;
    color: #f58b45;
    font-weight: 500;
}

#main .classroom-pop ul li span {
    font-weight: 600;
    color: #3d2416;
}

#main .classroom-pop ul li:not(:last-child) p {
    letter-spacing: -0.72px;
}

#main .swiper-button-prev,
#main .swiper-button-next {
    width: 48px;
    height: 48px;
    background: #665f56;
    border-radius: 50%;
    opacity: 1;
    color: #fff;
    cursor: pointer;
    top: calc(50% - 47px);
}

#main .swiper-button-prev::after,
#main .swiper-button-next::after {
    font-size: 20px;
    font-weight: bold;
}

#main .swiper-button-prev {
    left: -64px;
}

#main .swiper-button-next {
    right: -34px;
}

#main .main-none {
    width: 100%;
    height: 260px;
    padding-right: 48px;
    line-height: 1.3;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 25px;
    font-weight: 800;
    color: #3d2416;
    pointer-events: none;
}

#main .btn-change {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    border: 2px solid #3951cc;
    position: absolute;
    right: 62px;
    top: 50%;
    transform: translateY(-50%);
    background: url(../img/web/classroom_menu_hamburger.png) no-repeat #fff center / 24px;
}

#main .btn-change.squ {
    background: url(../img/web/classroom_menu_square.png) no-repeat #fff center / 24px;
}

#main .classroom-list-wrap {
    display: flex;
    justify-content: center;
    gap: 80px;
}

#main .classroom-list {
    border-radius: 12px;
    font-size: 18px;
    box-shadow: 0 4px 16px 0 rgba(51, 44, 39, 0.12);
}

#main .classroom-list.left {
    width: 256px;
    position: relative;
}

#main .classroom-list.left::after {
    content: "";
    width: 40px;
    height: 40px;
    border-radius: 20px;
    background: #ccbeab url(../img/web/calendar-arrow.svg) no-repeat center;
    position: absolute;
    right: -60px;
    top: 50%;
    transform: translateY(-50%) rotate(180deg);
}

#main .classroom-list.right {
    width: 616px;
}

#main .classroom-list-top {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 48px;
    background: #8f7156;
    border: 2px solid #7a5b40;
    color: #fff;
    font-weight: 600;
    border-radius: 12px 12px 0 0;
    font-size: 20px;
}

#main .classroom-list-bottom {
    background: #fff;
    border: 1px solid #d7cdbe;
    border-top: 0;
    border-radius: 0 0 12px 12px;
    padding: 8px;
    height: 356px;
}

#main .classroom-list.none .classroom-list-top {
    background-color: #d7cdbe;
    border: 1px solid #a39e96;
    color: #8b8377;
}

#main .classroom-list.none .classroom-list-bottom {
    background-color: #f5efe6;
    display: flex;
    align-items: center;
    justify-content: center;
}

#main .classroom-list-none {
    text-align: center;
    font-size: 20px;
    font-weight: 600;
    color: #666;
}

#main .classroom-list-none img {
    width: 24px;
    margin-bottom: 10px;
}

#main .classroom-list.none .classroom-list-contents {
    display: none;
}

#main .classroom-list:not(.none) .classroom-list-bottom > .classroom-list-none {
    display: none;
}

#main .classroom-list-contents {
    height: 100%;
    overflow-y: auto;
}

#main .classroom-list-contents::-webkit-scrollbar {
    width: 6px;
}

#main .classroom-list-contents::-webkit-scrollbar-track {
    background: #eee;
    margin: 0 0 8px;
}

#main .right .classroom-list-contents::-webkit-scrollbar-track {
    margin: 0 0 8px;
}

#main .left .classroom-list-contents::-webkit-scrollbar-track {
    margin: 0;
}

#main .classroom-list-contents.scroll {
    padding-right: 5px;
}

#main .classroom-list-contents .classroom-list-none-wrap {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-bottom: 8px;
}

#main .classroom-list li + li {
    margin-top: 4px;
}

#main .classroom-list li button {
    width: 100%;
    height: 45px;
    border-radius: 8px;
    background: #faf7f2;
    border: 2px solid #ede8e0;
    font-size: 22px;
    font-weight: 600;
    color:#3d2416;
    transition: all 0.1s;
}

#main .classroom-list li.active button {
    background-color: #f58b45;
    border-color: #eb6e1c;
    color: #fff;
}

#main .classroom-list.right .classroom-list-bottom {
    padding-bottom: 0;
}

#main .classroom-list.right .classroom-list-contents {
    padding-right: 8px;
    padding-bottom: 8px;
    overflow-y: scroll;
}

#main .classroom-list.right li button {
    height: 48px;
    border-radius: 0;
    border-width: 1px;
    color: #444;
}

.desktop #main .classroom-list.right li button:hover {
    border: 2px solid #f58b45;
    background: #fff9f5;
}

/* 알림장 */

#notice {
    position: relative;
}

#notice .btn-message {
    position: absolute;
    right: 40px;
    top: 40px;
}

#notice .btn-message img {
    margin-right: 8px;
}

#notice .tab-contents {
    width: 100%;
    height: calc(100% - 72px);
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    margin-top: 24px;
    box-shadow: 0 4px 16px 0 rgba(61, 36, 22, 0.12);
}

#notice .table-wrap {
    width: 100%;
    height: calc(100% - 56px);
    margin-top: 16px;
}

#notice .table-bottom {
    width: 100%;
    height: calc(100% - 36px);
    overflow: hidden auto;
}

#notice .table td {
    color: #888;
    letter-spacing: -0.72px;
    font-size: 18px;
    background: #f6f6f6;
    position: relative;
    border: 0;
    border-bottom: 1px solid #ddd;
}

#notice .table td:last-child {
    border-right: 1px solid #ddd;
}

#notice .table td::before {
    content: '';
    width: 1px;
    height: 100%;
    position: absolute;
    background: #ddd;
    top: 0;
    left: 0;
}

#notice .table td:not(:nth-child(2)) {
    text-align: center;
}

#notice .table td:nth-child(2) {
    cursor: pointer;
}

#notice .table td .title {
    font-size: 20px;
    color: #666;
    font-weight: 500;
    margin-bottom: 8px;
    letter-spacing: -0.4px;
    display: flex;
    align-items: center;
    max-width: 537px;
}

#notice .table td .text {
    color: inherit;
}

#notice .table td .title span,
#notice .table td .text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 537px;
}

#notice .table .file .title::before {
    content: '';
    width: 20px;
    height: 20px;
    background: url(../img/web/notice_file_off.png) no-repeat center;
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
}

#notice .table .unread .title::before {
    background-image: url(../img/web/notice_file.png);
}

#notice .table .unread td {
    background: #fff;
    color: #444;
}

#notice .table .unread td .title {
    color: #222;
    font-weight: 600;
}

#notice .table .unread .new .title::after {
    content: 'N';
    width: 18px;
    height: 18px;
    display: inline-flex;
    border-radius: 6px;
    background: #f58b45;
    align-items: center;
    justify-content: center;
    margin-left: 6px;
    font-size: 14px;
    color: #fff;
    font-weight: 600;
    flex-shrink: 0;
}

#notice .table-bottom.scroll {
    border-bottom: 1px solid #ddd;
}

#notice .table-bottom.scroll tr:last-child td {
    border-bottom: 0;
}

#notice .notice-send {
    width: 402px;
}

#notice .notice-send > li {
    width: 100%;
}

#notice .notice-send > li + li {
    margin-top: 18px;
}

#notice .notice-send > li p {
    font-size: 16px;
    letter-spacing: -0.64px;
    font-weight: 500;
    margin-bottom: 7px;
    color: #666;
}

#notice .notice-send textarea {
    width: 100%;
    height: 173px;
    border: 1px solid #ccc;
    border-radius: 4px;
    resize: none;
    box-sizing: border-box;
    padding: 10px;
    font-size: 18px;
    letter-spacing: -0.36px;
    font-family: inherit;
}

#notice .notice-send textarea::placeholder {
    color: #ccc;
}

#notice .notice-read {
    width: 800px;
    border-top: 2px solid #3d3425;
    table-layout: fixed;
}

#notice .notice-read th {
    background: #a39b90;
    color: #fff;
    height: 43px;
    border-bottom: 1px solid #8b8377;
    vertical-align: middle;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: -0.32px;
}

#notice .notice-read td {
    border-bottom: 1px solid #ddd;
    border-right: 1px solid #ddd;
    font-size: 18px;
    letter-spacing: -0.36px;
    vertical-align: middle;
    padding: 0 16px;
    line-height: 1.5;
    color: #444;
}

#notice .notice-read .notice-contents {
    vertical-align: top;
    overflow-y: auto;
}

#notice .notice-read .notice-contents div {
    width: 100%;
    height: 234px;
    padding: 10px 0;
}

#notice .table-wrap col:nth-child(1) {
    width: calc(1040px * 0.057);
}
#notice .table-wrap col:nth-child(2) {
    width: calc(1040px * 0.5961);
}
#notice .table-wrap col:nth-child(3) {
    width: calc(1040px * 0.1538);
}

#notice .notice-btn-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 5px 0;
}

/* 출석 확인 */
#attendance {
    width: 100%;
    height: 100%;
    display: flex;
}

#attendance .calendar-wrap > .bottom {
    width: 100%;
    max-height: 450px;
    overflow: hidden auto;
    border-bottom: 1px solid #ddd;
}

#attendance .calendar-wrap > .bottom::-webkit-scrollbar-track {
    margin: 0;
    border-radius: 0;
}

#attendance .calendar-attd {
    width: 100%;
    height: 100%;
    background: no-repeat center;
    background-size: contain;
}

/* 출석 */
#attendance .calendar-attd.P {
    background-image: url(../img/web/attendance_1.png);
}

/* 지각 */
#attendance .calendar-attd.L {
    background-image: url(../img/web/attendance_2.png);
}

/* 조퇴 */
#attendance .calendar-attd.E {
    background-image: url(../img/web/attendance_3.png);
}

/* 결석 */
#attendance .calendar-attd.A {
    background-image: url(../img/web/attendance_4.png);
}

/* 예외 */
/* #attendance .calendar-attd.X::after {
    content: '예외';
} */

#attendance .calendar-modal {
    width: 260px;
    left: 8px;
    top: calc(100% + 14px);
    display: none;
}

#attendance .calendar-bottom td:last-child .calendar-modal {
    left: auto;
    right: 8px;
}

#attendance .calendar-bottom td.active .calendar-modal {
    display: block;
}

#attendance tr:nth-child(n+5) .calendar-modal {
    top: auto;
    bottom: calc(100% + 14px);
}

#attendance tr:nth-child(n+5) .calendar-modal::after {
    top: auto;
    bottom: -7px;
}

/* 포인트 */
#point .tab-list li:last-child {
    display: none;
}

#point .tab-contents {
    width: 100%;
    height: calc(100% - 72px);
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    margin-top: 24px;
    position: relative;
    box-shadow: 0 4px 16px 0 rgba(61, 36, 22, 0.12);
}

#point .calendar-wrap > .bottom {
    width: 100%;
    max-height: 362px;
    overflow: hidden auto;
    border-bottom: 1px solid #ddd;
}

#point .calendar-wrap > .bottom::-webkit-scrollbar-track {
    margin: 0;
    border-radius: 0;
}

#point .calendar-bottom td {
    height: 80px;
}

#point .calendar-point {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
}

#point .calendar-point div {
    width: 36px;
    height: 36px;
    position: relative;
}

#point .calendar-point .plum {
    background: url(../img/web/plum.svg) no-repeat center;
}

#point .calendar-point .point {
    background: url(../img/web/coin.svg) no-repeat center top 3px;
}

#point .calendar-point span {
    position: absolute;
    width: 24px;
    height: 24px;
    border: 2px solid #d7cdbe;
    background: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.14px;
    color: #f58b45;
    bottom: -11px;
    right: -8px;
}

#point .point-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 16px;
    position: relative;
}

#point .point-header-bottom ul {
    display: flex;
    gap: 16px;
    justify-content: center;
    margin-bottom: 16px;
}

#point .point-header-bottom li {
    min-width: 336px;
    height: 48px;
    border-radius: 8px;
    background: #fbf3ec;
    color: #f58b45;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 500;
    letter-spacing: -0.72px;
    gap: 16px;
}

#point .point-header-bottom li:last-child {
    gap: 30px;
}

#point .point-header-bottom li p {
    display: flex;
    align-items: center;
    gap: 8px;
}

#point .point-header-bottom li span {
    color: #3d2416;
    letter-spacing: 0;
    font-weight: 600;
}

#point .point-header-bottom li img {
    max-width: 24px;
    max-height: 28px;
}

#point .point-header-bottom li .plum img {
    position: relative;
    top: -3px;
}

#point .point-header ~ .point-modal-bottom {
    height: calc(100% - 124px);
}

#point .point-header ~ .point-modal-bottom .table-bottom {
    max-height: calc(100% - 38px);
    overflow: hidden auto;
}

#point .point-modal-top {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 600;
    letter-spacing: -0.48px;
}

#point .point-modal-top p {
    width: 209px;
    text-align: center;
}

#point .point-button {
    width: 12px;
    height: 20px;
    background: url(../img/web/calendar-arrow.svg) no-repeat center;
}

#point .point-button-next {
    transform: rotate(180deg);
}

#point .point-modal-info {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 20px;
    height: 40px;
    background: #fbf3ec;
    border-top: 2px solid #3d3425;
    font-size: 18px;
    font-weight: 500;
    gap: 40px;
}

#point .point-modal-info p {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #f58f4c;
}

#point .point-modal-info .coin,
#point .point-modal-info .plum {
    gap: 7px;
}

#point .point-modal-info .plum img {
    max-height: 32px;
}

#point .point-modal-info .coin img {
    max-height: 30px;
}

#point .point-modal-info p img {
    margin-right: 1px;
}

#point .point-modal-info span,
#point .point-modal-info em {
    color: #3d2416;
    font-weight: 600;
    font-style: unset;
}

#point .point-modal-tb {
    width: 800px;
    max-height: 243px;
    overflow: hidden auto;
}

#point .point-modal-table th {
    height: 36px;
    border-bottom: 2px solid #8b8377;
}

#point .point-modal-table td:nth-last-child(3),
#point .point-modal-table td:nth-last-child(4),
#point .point-modal-table td:last-child,
#point .point-modal-table .text-center {
    text-align: center;
    padding: 8px;
}

#point .point-modal-table td:nth-last-child(3) {
    padding: 8px 0;
}

#point .point-modal-point {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 500;
}

#point .point-modal-point::before {
    content: '';
    width: 30px;
    display: block;
    background: no-repeat center;
    background-size: contain;
}

#point .point-modal-point.C::before {
    height: 30px;
    background-image: url(../img/web/coin.svg);
}

#point .point-modal-point.P::before {
    height: 32px;
    background-image: url(../img/web/plum.svg);
}

#point .point-modal-table col:nth-child(1) {
    width: calc(800px * 0.1525);
}
#point .point-modal-table col:nth-child(2) {
    width: calc(800px * 0.223);
}
#point .point-modal-table col:nth-child(3) {
    width: calc(800px * 0.0625);
}
#point .point-modal-table col:nth-child(4) {
    width: calc(800px * 0.092);
}
#point .point-modal-table col:nth-child(5) {
    width: calc(800px * 0.31125);
}

#point .point-top {
    display: flex;
    gap: 16px;
    margin: 20px 0 16px;
}

#point .point-top li {
    width: 100%;
    height: 48px;
    background: #fbf3ec;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 500;
    color: #f58f4c;
}

#point .point-top li span {
    color: #3d2416;
    font-weight: 600;
}

#point .point-top li:not(.point) span {
    margin-left: 16px;
}

#point .point-top li div {
    display: flex;
    align-items: center;
    gap: 4px;
}

#point .point-top li div + div {
    margin-left: 24px;
}

#point .point-top li img {
    max-width: 24px;
    max-height: 28px;
}

#point .point-top li.point div:first-child img {
    position: relative;
    top: -2px;
}

#point .point-month {
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    position: absolute;
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    z-index: 1;
}

#point .point-month td:nth-last-child(3) {
    padding: 0 8px;
}

#point .point-month col:nth-child(1) {
    width: calc(1039px * 0.1173);
}
#point .point-month col:nth-child(2) {
    width: calc(1039px * 0.1807);
}
#point .point-month col:nth-child(3) {
    width: calc(1039px * 0.048);
}
#point .point-month col:nth-child(4) {
    width: calc(1039px * 0.0826);
}
#point .point-month col:nth-child(5) {
    width: calc(1039px * 0.45);
}

#point .racing-wrap {
    display: flex;
}

#point .racing-wrap .side {
    width: 40px;
    position: relative;
}

#point .racing-wrap .side p {
    font-size: 28px;
    font-weight: 600;
    color: #a39b90;
    position: absolute;
    transform: rotate(90deg) translate(-50%, -50%);
    transform-origin: top left;
    left: 43%;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    letter-spacing: 2.8px;
}

#point .racing-wrap .side.finish p {
    left: 57%;
}

#point .racing-wrap .side p img {
    transform: rotate(-90deg);
    max-width: 30px;
}

#point .racing-area {
    width: 100%;
    height: 343px;
    overflow-y: auto;
    border: 1px solid #ddd;
}

#point .racing-area::-webkit-scrollbar-track {
    margin: 0;
    border-radius: 0;
}

#point .racing-area li {
    border: 3px solid #ede8e0;
    border-left: 0;
    border-right: 0;
    height: 46px;
    background: repeating-linear-gradient(90deg, #f5efe7, #f5efe7 10%, #faf7f2 0, #faf7f2 20%);
    position: relative;
}

#point .racing-area li + li {
    margin-top: 4px;
}

#point .racing-area li.first {
    z-index: 1;
}

#point .racing-area li.first + li {
    z-index: 0;
}

#point .racing-car {
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    height: 100%;
    width: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

#point .racing-car p {
    position: absolute;
    white-space: nowrap;
    font-size: 16px;
    left: calc(-100% - 12px);
    font-size: 18px;
    font-weight: 600;
}

#point .racing-car p.user {
    font-size: 16px;
    font-weight: 500;
    color: #fff;
    height: 27px;
    padding: 0 12px;
    background: rgba(143, 113, 86, 0.8);
    border-radius: 13.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    left: calc(-100% - 32px);
}

#point .racing-car .car {
    width: 40px;
    height: 40px;
    background: url(../img/web/ranking_car.png) center no-repeat;
    background-size: 100%;
    flex-shrink: 0;
    position: relative;
    cursor: pointer;
}

#point .racing-car .car::after {
    content: '';
    width: 24px;
    height: 24px;
    position: absolute;
    top: 50%;
    left: calc(100% + 8px);
    transform: translateY(-50%);
}

#point .racing-car.first .car::after {
    background: url(../img/web/ranking_first.png) center no-repeat;
    background-size: 100%;
}
#point .racing-car.second .car::after {
    background: url(../img/web/ranking_second.png) center no-repeat;
    background-size: 100%;
}
#point .racing-car.third .car::after {
    background: url(../img/web/ranking_third.png) center no-repeat;
    background-size: 100%;
}

#point .point-pop {
    position: absolute;
    width: 260px;
    height: 74px;
    left: -16px;
    top: -92px;
    border-radius: 8px;
    background: #f58b45;
    box-shadow: 4px 4px 8px 0 rgba(0, 0, 0, 0.12);

    -webkit-animation-name: openPop;
    animation-name: openPop;
    -webkit-animation-duration: 0.2s;
    animation-duration: 0.2s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

#point .racing-area li:nth-child(-n + 2) .point-pop {
    top: 58px;
}

#point .point-pop.close {
    -webkit-animation-name: closePop;
    animation-name: closePop;
}

#point .point-pop::after {
    content: '';
    width: 25px;
    height: 25px;
    background: #f58b45;
    border-radius: 5px;
    position: absolute;
    top: 58px;
    left: 24px;
    transform: rotate(45deg);
    z-index: -1;
}

#point .racing-area li:nth-child(-n + 2) .point-pop::after {
    top: -9px;
}

#point .point-pop .top {
    height: 32px;
    padding: 2px 10px 0;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 18px;
    font-weight: 500;
    letter-spacing: -0.72px;
    background: #f58b45;
    border-radius: 8px 8px 0 0;
}

#point .point-pop .top button {
    width: 15px;
    height: 15px;
    background: url(../img/web/header_close.svg) no-repeat center;
    background-size: 100%;
}

#point .point-pop .bottom {
    border: 2px solid #f58b45;
    background: #fff;
    height: 42px;
    border-radius: 2px 2px 8px 8px;
    font-size: 18px;
    font-weight: 600;
    display: flex;
    align-items: center;
    padding: 0 16px;
}

/* 교재 등록 */
#registration {
    position: relative;
}

#registration .btn-check {
    position: absolute;
    right: 40px;
    top: 40px;
}

#registration .btn-check img {
    margin-right: 8px;
}

#registration .regi-wrap {
    width: 100%;
    height: 100%;
    padding-top: 30px;
    background: url(../img/web/registration_bg_1.svg) no-repeat center bottom 30px;
    background-size: contain;
}

#registration .regi-wrap h2 {
    text-align: center;
    font-size: 32px;
    font-weight: bold;
    color: #3d2416;
    margin-bottom: 20px;
}

#registration .regi-wrap > p {
    text-align: center;
    color: #666;
    font-size: 16px;
}

#registration .regi-wrap > p span {
    font-weight: 600;
    color: #3d2416;
    font-size: inherit;
}

#registration .regi-list {
    margin: 27px auto 0;
    max-width: 592px;
    height: 401px;
    background: url(../img/web/registration_bg_2.svg) no-repeat top center;
    padding: 69px 86px 0;
    background-size: cover;
}

#registration .regi-list li + li {
    margin-top: 20px;
}

#registration .regi-list li + li:last-child {
    margin-top: 40px;
    text-align: center;
}

#registration .regi-list li + li:last-child .btn {
    min-width: 186px;
}

#registration .regi-list li > p {
    color: #666;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: -0.64px;
    margin-bottom: 6px;
}

#registration .regi-list li div {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 18px;
}

#registration .regi-list li input[type="number"] {
    max-width: 80px;
}

#registration .regi-list li input:disabled {
    max-width: 272px;
    margin-right: 4px;
    color: #222;
}

#registration .regi-list li div p {
    font-size: 18px;
    color: #444;
    letter-spacing: -0.72px;
}

#registration .camera-btn input[type="file"] {
    display: none;
}

#registration .camera-btn .btn-s {
    padding: 0;
    min-width: 44px;
    margin-left: 4px;
    background-image: url(../img/web/registration_camera.png);
    background-repeat: no-repeat;
    background-position: center;
    cursor: pointer;
}

#registration .select-wrap {
    max-width: 160px;
    margin: 0 0 16px auto;
}

#registration .table-wrap {
    width: 800px;
}

#registration .table-bottom {
    max-height: 220px;
    overflow: hidden auto;
    border-right: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
}

#registration .table-bottom::-webkit-scrollbar-track {
    border-radius: 0;
    margin: 0;
}

#registration .table-bottom .table {
    width: 800px;
}

#registration .table-bottom .table tr:last-child td {
    border-bottom: 0;
}

#registration .table td {
    height: 44px;
    padding: 0 15px;
    color: #888;
    background: #f6f6f6;
}

#registration .table .common td {
    background: #fff;
    color: #444;
}

#registration .table .common td:last-child {
    color: #222;
}

#registration .table td:last-child {
    font-weight: 600;
}

#registration .table .active td:last-child {
    color: #f58b45;
}

#registration .table-bottom .table td:not(:nth-child(2)) {
    text-align: center;
}

#registration .pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: 20px;
}

#registration .pagination > div {
    display: flex;
    gap: 4px;
}

#registration .pagination button {
    width: 32px;
    height: 32px;
    font-size: 16px;
    font-weight: 500;
    border-radius: 4px;
}

#registration .pagination button.active {
    background: #3951cc;
    color: #fff;
}

#registration .pagination-btn {
    background: url(../img/web/pagination_arrow.png) no-repeat center;
}

#registration .pagination-btn.next {
    transform: rotate(180deg);
}

/* 성적확인 */

#report .report-top {
    display: flex;
    gap: 16px;
    position: relative;
    z-index: 5;
}

#report .report-top .left {
    width: 280px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

#report .report-top .left .select-bottom {
    max-height: 500px;
    overflow-y: auto;
}

#report .report-top .right {
    height: 64px;
    border-radius: 4px;
    border: 1px solid #d7cdbe;
    width: calc(100% - 296px);
    position: relative;
}

#report .report-slide-btn {
    height: 64px;
    width: 24px;
    background: url(../img/web/report_arrow.svg) no-repeat center #d7cdbe;
    border: 1px solid #a39e96;
    position: absolute;
    top: -1px;
    border-radius: 4px 0 0 4px;
}

#report .report-slide-btn.prev {
    left: -1px;
}

#report .report-slide-btn.next {
    right: -1px;
    transform: rotate(180deg);
}

#report .report-top .chapter-list {
    display: flex;
    align-items: center;
    height: 100%;
    gap: 12px;
    padding: 0 12px;
    position: absolute;
    left: 23px;
    top: 0;
    max-width: calc(100% - 45px);
    overflow: hidden;
}

#report .report-top .chapter-list li {
    position: relative;
    left: 0;
    transition: all 0.2s ease-in-out;
}

#report .report-top .chapter-list button {
    height: 48px;
    border-radius: 24px;
    min-width: 90px;
    background: #fff;
    padding: 0 10px;
    border: 2px solid #3951cc;
    color: #3951cc;
    font-size: 20px;
    font-weight: 500;
    white-space: nowrap;
    letter-spacing: -0.2px;
    font-family: 'Roboto', sans-serif;
}

#report .report-top .chapter-list .active button {
    background: #28358f;
    border-color: #28358f;
    color: #fff;
}

#report .report-top .chapter-list .none button {
    background: #e3dbce;
    color: #b5afa5;
    border-color: #e3dbce;
    pointer-events: none;
}

#report .report-bottom {
    width: 100%;
    height: calc(100% - 88px);
    background: #fff;
    border-radius: 12px;
    padding: 8px 8px 8px 40px;
    margin-top: 24px;
    box-shadow: 0 4px 16px 0 rgba(61, 36, 22, 0.12);
}

#report .report-scroll {
    height: 100%;
    overflow-y: auto;
    padding: 32px 26px 32px 0;

    -webkit-animation-name: openPop;
    animation-name: openPop;
    -webkit-animation-duration: 0.3s;
    animation-duration: 0.3s;
}

#report .report-scroll::-webkit-scrollbar-track {
    margin: 0;
}

#report .report-title {
    display: flex;
    gap: 14px;
    align-items: center;
    font-size: 36px;
    font-weight: bold;
    margin-bottom: 27px;
}

#report .report-title span {
    display: inline-flex;
    align-items: center;
    height: 27px;
    padding: 0 12px;
    border-radius: 16px;
    background: #a58d77;
    color: #fff;
    font-size: 16px;
    font-weight: 500;
}

#report .report-sub {
    color: #3d2416;
    font-size: 28px;
    padding-bottom: 2px;
    border-bottom: 2px solid #3d2416;
    margin-bottom: 18px;
}

#report .report-info {
    display: flex;
    gap: 8px;
}

#report .report-info > li:first-child {
    width: 16%;
}

#report .report-info > li:nth-child(2) {
    width: 32.8%;
}

#report .report-info > li:nth-child(3) {
    width: 49.6%;
}

#report .report-info.new > li:first-child {
    width: 25%;
}

#report .report-info.new > li:nth-child(2) {
    width: 75%;
}

#report .report-info.final > li {
    width: calc(50% - 4px);
}

#report .report-info.final .bottom {
    text-align: center;
    font-size: 18px;
    font-weight: 600;
}

#report .report-info.final .bottom > span {
    font-size: 16px;
    margin-left: 6px;
    color: #634e41;
    font-weight: 500;
}

#report .report-info.final .bottom p {
    margin-top: 16px;
    font-size: 16px;
    letter-spacing: -0.64px;
    color: #634e41;
    font-weight: 500;
    display: flex;
    justify-content: center;
    align-items: center;
}

#report .report-info.final .bottom p span {
    margin-right: 8px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
}

#report .report-info.final .bottom p span::before {
    content: '';
    width: 20px;
    height: 20px;
    background: no-repeat center;
    display: inline-block;
    margin-right: 4px;
    background-size: 100%;
}

#report .report-info.final .bottom .up {
    color: #83b816;
}

#report .report-info.final .bottom .up::before {
    background-image: url(../img/web/report_up.png);
}

#report .report-info.final .bottom .down {
    color: #dd443c;
}

#report .report-info.final .bottom .down::before {
    background-image: url(../img/web/report_down.png);
}

#report .report-info .top,
#report .report-sub-title {
    font-size: 18px;
    margin-bottom: 6px;
    color: #8f7156;
    font-weight: 600;
    letter-spacing: -0.72px;
    display: flex;
}

#report .report-info .top::before,
#report .report-sub-title::before {
    content: '';
    width: 20px;
    height: 20px;
    display: inline-block;
    background: no-repeat center;
    margin-right: 6px;
    background-size: 100%;
}

#report .report-info .top.time::before,
#report .report-sub-title.time::before {
    background-image: url(../img/web/report_time.svg);
}
#report .report-info .top.chart::before {
    background-image: url(../img/web/report_chart.svg);
}
#report .report-info .top.point::before {
    background-image: url(../img/web/report_point.png);
}

#report .report-info .bottom {
    width: 100%;
    height: calc(100% - 26px);
    background: #fbf3ec;
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 16px;
    color: #3d2416;
    font-weight: 500;
}

#report .report-info.new .bottom {
    display: flex;
    flex-wrap: wrap;
}

#report .report-info.new .bottom.time {
    flex-wrap: nowrap;
}

#report .report-info .bottom.time {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    font-size: 18px;
    font-weight: 600;
}

#report .report-info.new .bottom.time .box-wrap {
    margin-top: 15px;
}

#report .report-info .bottom.progress {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

#report .report-info .bottom.progress li {
    display: flex;
    align-items: center;
}

#report .report-info .bottom.progress li + li {
    margin-top: 20px;
}

#report .report-info .bottom.progress li p {
    color: #3d2416;
}

#report .report-info .bottom.progress li p:first-child {
    min-width: 92px;
}

#report .report-info .bottom.progress li p:last-child {
    min-width: calc(100% - 242px);
    text-align: right;
    font-weight: 600;
}

#report .report-info .bottom .box-wrap {
    max-width: 150px;
    width: 100%;
    height: 16px;
    background: #fff;
    border-radius: 4px;
    border: 2px solid #a39b90;
    position: relative;
}

#report .report-info .bottom .box-wrap .box {
    position: absolute;
    height: 16px;
    border-radius: 4px;
    top: -2px;
    left: -2px;
    background: #8f7156;
    max-width: calc(100% + 4px);
}

#report .report-info .bottom.point div {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

#report .report-info .bottom.point div + div {
    margin-top: 8px;
}

#report .report-info .bottom.point div:last-child {
    overflow: hidden;
}

#report .report-info.new .bottom.point div {
    width: 50%;
    margin-top: 0;
}

#report .report-info.new .bottom.point div:nth-child(odd) {
    padding-right: 16px;
}

#report .report-info.new .bottom.point div:nth-child(even) {
    padding-left: 16px;
}

#report .report-info.new .bottom.point div:nth-child(n + 3) {
    margin-top: 8px;
}

#report .report-info .bottom.point ul {
    display: flex;
    min-width: 167px;
    position: relative;
}

#report .report-info .bottom.point ul::after {
    content: '';
    width: 1px;
    height: calc(100% + 8px);
    background: #e1d2ba;
    left: 50%;
    top: 0;
    position: absolute;
    display: block;
}

#report .report-info.new .bottom.point ul::after {
    left: auto;
    right: -16px;
    height: calc(100% + 10px);
    top: -3px;
}

#report .report-info.new .bottom.point div:nth-child(even) ul::after,
#report .report-info.new .bottom.point div:only-child ul::after {
    display: none;
}

#report .report-info .bottom.point li {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 83px;
}

#report .report-info .bottom.point li:last-child {
    justify-content: flex-start;
    padding-left: 8px;
}

#report .report-info .bottom.point li span:last-child {
    margin-left: 5px;
}

#report .report-info .bottom.point img {
    max-width: 23px;
    max-height: 28px;
}

#report .report-tob-table {
    margin-top: 16px;
}

#report .report-tob-table th:nth-child(2),
#report .report-tob-table td:nth-child(2) {
    border-right-color: #3d2416;
}

#report .report-tob-table td:nth-child(odd) {
    background: #f6f6f6;
    text-align: center;
}

#report .report-tob-table td:nth-child(even) {
    text-align: center;
}


#report .report-test-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px;
}

#report .report-test-wrap > .time {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 95px;
    width: 160px;
    background: #fbf3ec;
    border-radius: 8px;
    font-size: 18px;
    color: #3d2416;
    font-weight: 600;
    flex-direction: column;
}

#report .report-test-wrap > .time span {
    font-size: 16px;
    font-weight: 500;
    letter-spacing: -0.32px;
    margin-top: 8px;
    color: #634e41;
}

#report .report-test-wrap .report-table:nth-child(2) {
    width: calc(100% - 168px);
}

#report .report-test-wrap.new > .time {
    width: 25% !important;
}

#report .report-test-wrap.new .report-table:nth-child(2) {
    width: calc(75% - 8px);
}

#report .report-test-wrap.final .report-table:first-child,
#report .report-test-wrap.final .report-table:last-child {
    width: 100%;
}

#report .report-test-wrap table {
    width: 100%;
}

#report .report-bottom h4 {
    margin: 16px 0;
    font-size: 20px;
    color: #3d2416;
    font-weight: 600;
    letter-spacing: -0.4px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#report .report-bottom .caution {
    font-size: 16px;
    letter-spacing: -0.64px;
    color: #666;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

#report .report-bottom .caution::before {
    content: '';
    width: 20px;
    height: 20px;
    display: inline-block;
    background: url(../img/web/report_caution.png) no-repeat center;
    background-size: 100%;
}

#report .report-test-wrap table th {
    height: 36px;
    text-align: left;
    background: #a39b90;
    border-top: 2px solid #3d3425;
    border-left: 1px solid #a39b90;
    vertical-align: middle;
    padding-left: 16px;
    font-size: 16px;
    color: #fff;
    font-weight: 500;
    position: relative;
}

#report .report-test-wrap table th::before {
    content: '';
    width: 100%;
    height: 2px;
    position: absolute;
    display: block;
    left: 0;
    bottom: 0;
    background: #8b8377;
    z-index: 0;
}

#report .report-test-wrap table th span {
    position: relative;
    z-index: 0;
}

#report .report-test-wrap table th button {
    display: inline-flex;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    background: url(../img/web/report_pop.png) no-repeat center;
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
}

#report .report-test-wrap table td {
    height: 59px;
    border: 1px solid #ddd;
    position: relative;
    cursor: pointer;
}

#report .report-test-wrap table td span {
    position: absolute;
    font-size: 14px;
    color: #666;
    top: 3px;
    right: 4px;
    font-weight: 600;
}

#report .report-test-wrap table td div {
    font-size: 0;
    height: 100%;
    cursor: pointer;
}

#report .report-test-wrap table td.O::after {
    content: '';
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 6px solid #91cc18;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    box-sizing: border-box;
}

#report .report-test-wrap table td.X {
    background: url(../img/web/table_x.svg) no-repeat center #fff9f5;
}

#report .report-test-wrap table td.incorrect {
    background: #fff9f5;
    color: #dd443c;
}

#report .report-test-wrap table .sound div {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    text-align: center;
    font-weight: 600;
    padding: 0 5px;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
}

#report .report-homework th {
    text-align: left;
    padding-left: 16px;
}

#report .report-record.none,
#report .report-record-bottom.none,
#report h4.none {
    display: none;
}

#report .report-record {
    background: #fbf3ec;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 0;
    gap: 8px;
}

#report .report-record p {
    font-size: 18px;
    letter-spacing: -0.72px;
    font-weight: 600;
    color: #3d2416;
    margin-right: 16px;
}

#report .report-record .btn {
    height: 36px;
    font-size: 16px;
    min-width: 90px;
}

#report .report-record .btn img {
    margin-right: 6px;
}

#report .report-record-bottom {
    display: flex;
    gap: 8px;
}

#report .report-record-bottom .left {
    width: 66.4%;
}

#report .report-record-bottom .right {
    width: 32.8%;
}

#report .report-record-bottom .table td {
    padding: 11px 16px;
}

#report .report-record-bottom .table td:first-child {
    background: #f6f6f6;
    text-align: center;
}

#report .chart-result {
    display: flex;
    gap: 4px;
    align-items: center;
    justify-content: center;
}

#report .chart-result p {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid transparent;
    font-size: 16px;
    font-weight: 600;
    color: #aaa;
    display: flex;
    align-items: center;
    justify-content: center;
}

#report .chart-result p.active {
    color: #dd443c;
    border-color: #dd443c;
}

#report .chart {
    position: relative;
    display: inline-flex;
}

#report .chart-wrap {
    height: calc(100% - 48px);
    border: 1px solid #ddd;
    border-top: 2px solid #3d3425;
    display: flex;
    align-items: center;
    justify-content: center;
    background: url(../img/web/graph_5.svg) no-repeat center;
    background-position-x: 14px;
    padding-right: 12px;
}

#report .chart-name li {
    position: absolute;
    font-size: 14px;
    font-weight: 500;
    color: #888;
}

#report .chart-name li:first-child {
    bottom: calc(100% + 2px);
    left: 50%;
    transform: translateX(-50%);
}

#report .chart-name li:nth-child(2) {
    top: 53px;
    left: calc(100% - 12px);
}

#report .chart-name li:nth-child(3) {
    top: calc(100% + 8px);
    left: calc(50% + 50px);
}

#report .chart-name li:nth-child(4) {
    top: calc(100% + 8px);
    right: calc(50% + 50px);
}

#report .chart-name li:nth-child(5) {
    top: 53px;
    right: calc(100% + 8px);
}

#report .chart-dot {
    position: absolute;
    left: calc(50% - 5px);
    top: calc(50% + 10px);
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
}

#report .chart-dot div {
    position: absolute;
    width: 8px;
    height: 8px;
    background: #f58b45;
}

#report .report-contents ~ .report-contents,
#report .report-final-wrap .report-contents {
    margin-top: 46px;
}

#report .report-contents + .report-sub,
#report .report-sub ~ .report-contents {
    margin-top: 40px;
}

#report .report-homework {
    display: flex;
    gap: 8px;
    margin-top: 16px;
}

#report .report-homework ul {
    display: flex;
    width: 100%;
    justify-content: space-around;
    align-items: center;
    gap: 15px;
}

#report .report-homework ul li {
    text-align: center;
    font-size: 14px;
    color: #222;
}

#report .report-homework ul li div {
    width: 80px;
    height: 80px;
    margin: 0 auto 10px;
    background: no-repeat center;
    background-size: auto 100%;
    position: relative;
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: 1px 1px 0 0 rgba(0, 0, 0, 0.12);
}

#report .report-homework ul li {
    white-space: nowrap;
}

#report .new .report-homework ul {
    justify-content: flex-start;
    gap: 40px;
    flex-wrap: wrap;
}

#report .new .report-homework ul p {
    max-width: 80px;
    white-space: normal;
}

#report .report-homework ul li div.matc {
    background-image: url(../img/web/homework_1.png);
}
#report .report-homework ul li div.socc {
    background-image: url(../img/web/homework_2.png);
}
#report .report-homework ul li div.ball {
    background-image: url(../img/web/homework_3.png);
}
#report .report-homework ul li div.buil {
    background-image: url(../img/web/homework_4.png);
}
#report .report-homework ul li div.lect {
    background-image: url(../img/web/homework_5.png);
}
#report .report-homework ul li div.anim {
    background-image: url(../img/web/homework_6.png);
}
#report .report-homework ul li div.soun {
    background-image: url(../img/web/homework_7.png);
}
#report .report-homework ul li div.voca {
    background-image: url(../img/web/homework_8.png);
}
#report .report-homework ul li div.role {
    background-image: url(../img/web/homework_9.png);
}
#report .report-homework ul li div.what {
    background-image: url(../img/web/homework_10.png);
}
#report .report-homework ul li div.sent {
    background-image: url(../img/web/homework_11.png);
}
#report .report-homework ul li div.stru {
    background-image: url(../img/web/homework_12.png);
}
#report .report-homework ul li div.thou {
    background-image: url(../img/web/homework_13.png);
}
#report .report-homework ul li div.reco {
    background-image: url(../img/web/homework_14.png);
}
#report .report-homework ul li div.chan {
    background-image: url(../img/web/homework_15.png);
}
#report .report-homework ul li div.read {
    background-image: url(../img/web/homework_16.png);
}
#report .report-homework ul li div.toda {
    background-image: url(../img/web/homework_17.png);
}
#report .report-homework ul li div.shad {
    background-image: url(../img/web/homework_18.png);
}
#report .report-homework ul li div.dict {
    background-image: url(../img/web/homework_19.png);
}
#report .report-homework ul li div.jump {
    background-image: url(../img/web/homework_20.png);
}
#report .report-homework ul li div.spym {
    background-image: url(../img/web/homework_21.png);
}
#report .report-homework ul li div.powe {
    background-image: url(../img/web/homework_22.png);
}
#report .report-homework ul li div.trea {
    background-image: url(../img/web/homework_23.png);
}
#report .report-homework ul li div.memo {
    background-image: url(../img/web/homework_24.png);
}
#report .report-homework ul li div.d-bo {
    background-image: url(../img/web/homework_25.png);
}
#report .report-homework ul li div.reading {
    background-image: url(../img/web/homework_26.png);
}
#report .report-homework ul li div.expr {
    background-image: url(../img/web/homework_27.png);
}
#report .report-homework ul li div.grpr {
    background-image: url(../img/web/homework_28.png);
}
#report .report-homework ul li div.grre {
    background-image: url(../img/web/homework_29.png);
}
#report .report-homework ul li div.lesp,
#report .report-homework ul li div.list{
    background-image: url(../img/web/homework_30.png);
}
#report .report-homework ul li div.lire {
    background-image: url(../img/web/homework_31.png);
}
#report .report-homework ul li div.lipr {
    background-image: url(../img/web/homework_32.png);
}
#report .report-homework ul li div.miss {
    background-image: url(../img/web/homework_33.png);
}
#report .report-homework ul li div.spea {
    background-image: url(../img/web/homework_34.png);
}

#report .report-homework ul li div.essential::before {
    content: '';
    width: 28px;
    height: 28px;
    background: #fff url(../img/web/homework_star.png) no-repeat center;
    border: 2px solid #d7cdbe;
    border-radius: 50%;
    position: absolute;
    right: -4px;
    bottom: -4px;
    box-sizing: border-box;
    z-index: 1;
}

#report .report-homework ul li div.complete::after {
    content: '';
    width: 104px;
    height: 100%;
    position: absolute;
    background: url(../img/web/homework_complete.png) no-repeat center rgba(255, 255, 255, 0.7);
    background-size: 100%;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
}

#report .report-homework-bottom {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
    margin-top: 16px;
}

#report .btn-report-homework {
    height: 36px;
    font-size: 16px;
}

#report .btn-report-homework::after {
    content: '';
    width: 16px;
    height: 16px;
    background: url(../img/web/report_homework_arrow.png) no-repeat center;
    margin-left: 8px;
}

#report .homework-none {
    width: 100%;
    text-align: center;
    background: #fbf3ec;
    border-radius: 8px;
    font-size: 18px;
    padding: 14px 0 16px;
    color: #3d2416;
}

#report .table.row {
    width: 800px;
    border-top: 2px solid #3d3425;
}

#report .table.row th {
    border-top: 0;
    border-bottom: 1px solid #8b8377;
}

#report .table.row td {
    padding: 9px 16px;
    line-height: 1.5;
    letter-spacing: -0.72px;
}

#report .final-wrap {
    display: flex;
}

#report .final-wrap .left {
    width: 66.4%;
}

#report .final-wrap .table td {
    padding: 13px 16px;
    text-align: center;
}

#report .final-wrap .table td:first-child {
    background: #f6f6f6;
}

#report .final-wrap .table .last td {
    color: #222;
    font-weight: 600;
}

#report .final-wrap .table .last td:first-child {
    font-size: 16px;
    font-weight: 500;
}

#report .final-wrap .right {
    width: 33.6%;
    border: 1px solid #dddddd;
    border-left: 0;
    border-top: 2px solid #3d3425;
    padding: 16px 32px 15px 20px;
}

#report .final-wrap .right.dia {
    padding: 10px 17px 10px 12px;
}

#report .final-wrap .right .percent {
    display: flex;
    font-size: 14px;
    font-weight: 500;
    color: #888;
    justify-content: space-between;
    text-align: center;
    transform: translateX(-15px);
    width: calc(100% + 35px);
    margin-bottom: 6px;
}

#report .final-wrap .right .percent li {
    width: 35px;
}

#report .final-wrap .right .report-bar-wrap {
    background: repeating-linear-gradient(90deg, #e5e5e5, #e5e5e5 0.8px, #f9f9f9 0, #f9f9f9 56.4px);
    width: 100%;
    padding: 15px 0;
}

#report .final-wrap .right .report-bar-wrap li {
    height: 16px;
    background: #f58b45;
}

#report .final-wrap .right .report-bar-wrap li + li {
    margin-top: 28px;
}

#report .explain {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 13px;
    font-size: 14px;
    font-weight: 500;
    color: #666;
    letter-spacing: -0.56px;
    width: 100%;
}

#report .explain li {
    display: flex;
}

#report .explain li + li {
    margin-left: 40px;
}

#report .explain div {
    width: 14px;
    height: 14px;
    background: #f58b45;
    border-radius: 2px;
    margin-right: 4px;
}

#report .explain div.round {
    border-radius: 50%;
    background: #fff;
    border: 3px solid #888;
}

#report .explain div.skyblue {
    background: #00b3ca;
}

#report .explain div.blue {
    background: #1d4e89;
}

#report .explain div.red {
    background: #F8786B;
}

#report .report-dia {
    position: relative;
    margin-bottom: 30px;
    background: url(../img/web/graph_4.svg) no-repeat left -5px center;
}

#report .report-dia .name,
#report .report-dia .dot {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
}

#report .report-dia .name li {
    position: absolute;
    font-size: 14px;
    font-weight: 500;
    color: #888;
}

#report .report-dia .name li:nth-child(2n+1) {
    left: 50%;
    transform: translateX(-50%);
}

#report .report-dia .name li:nth-child(2n) {
    top: 50%;
    transform: translateY(-50%);
}

#report .report-dia .name li:first-child {
    top: -76px;
}

#report .report-dia .name li:nth-child(2) {
    left: 115px;
}

#report .report-dia .name li:nth-child(3) {
    bottom: -76px;
}

#report .report-dia .name li:nth-child(4) {
    right: 118px;
    text-align: right;
}

#report .dot li {
    position: absolute;
    width: 8px;
    height: 8px;
}

#report .dot.sqaure li {
    background: #f58b45;
}

#report .dot.round li {
    border-radius: 50%;
    border: 2px solid #888;
    background: #fff;
}

#report .dot.blue li {
    background: #1d4e89;
}

#report .dot.skyblue li {
    background: #00b3ca;
}

#report .dot.red li {
    background: #F8786B;
}

#report .report-dia canvas {
    margin: 20px auto;
    display: block;
    max-width: 100%;
}

#report .report-check {
    text-align: center;
}

#report .report-check td:nth-child(3) {
    font-weight: 600;
    color: #222;
}

#report .report-graph-wrap {
    border: 1px solid #ddd;
    border-top: 2px solid #3d3425;
    padding: 20px 40px;
    display: flex;
    flex-wrap: wrap;
    overflow: hidden;
}

#report .report-graph-wrap .percent,
#report .report-graph-wrap .chapter {
    font-size: 14px;
    font-weight: 500;
    color: #888;
    display: flex;
}
#report .report-graph-wrap .percent li,
#report .report-graph-wrap .chapter li {
    width: 35px;
}

#report .report-graph-wrap .percent {
    flex-direction: column;
    transform: translateY(-7px);
    gap: 26px;
    margin-right: 4px;
    text-align: right;
}

#report .report-graph-wrap .chapter {
    width: 100%;
    justify-content: space-between;
    padding-left: 45px;
    transform: translateY(-8px);
}

#report .graph-wrap {
    width: calc(100% - 40px);
    height: 201px;
    background-color: #f9f9f9;
    background-image: linear-gradient(#e5e5e5 0.9px, transparent 0.9px), linear-gradient(to right, #e5e5e5 0.9px, #f9f9f9 0.9px);
    background-size: 139.5px 20px;
    background-position-x: -119px;
    position: relative;
    padding: 0 21px;
    display: flex;
}

#report .graph-wrap.less {
    background-size: 166.5px 20px;
    background-position-x: 21px;
}

#report .graph-wrap.more {
    background-size: 119.5px 20px;
    background-position-x: -98px;
}

#report .graph-wrap .dot.sqaure {
    z-index: 3;
}
#report .graph-wrap .dot.skyblue {
    z-index: 2;
}
#report .graph-wrap .dot.blue {
    z-index: 1;
}
#report .graph-wrap .dot.red {
    z-index: 0;
}

#report .graph-wrap .dot li {
    transform: translate(-50%, 50%);
}

#report .graph-wrap .dot li:nth-child(1) {
    left: 2.4%;
}
#report .graph-wrap .dot li:nth-child(2) {
    left: 18.3%;
}
#report .graph-wrap .dot li:nth-child(3) {
    left: 34.2%;
}
#report .graph-wrap .dot li:nth-child(4) {
    left: 50%;
}
#report .graph-wrap .dot li:nth-child(5) {
    left: 66%;
}
#report .graph-wrap .dot li:nth-child(6) {
    left: 81.9%;
}
#report .graph-wrap .dot li:nth-child(7) {
    left: 97.7%;
}

#report .graph-wrap.more .dot li:nth-child(1) {
    left: 2.4%;
}
#report .graph-wrap.more .dot li:nth-child(2) {
    left: 16.2%;
}
#report .graph-wrap.more .dot li:nth-child(3) {
    left: 29.7%;
}
#report .graph-wrap.more .dot li:nth-child(4) {
    left: 43.5%;
}
#report .graph-wrap.more .dot li:nth-child(5) {
    left: 57.2%;
}
#report .graph-wrap.more .dot li:nth-child(6) {
    left: 70.9%;
}
#report .graph-wrap.more .dot li:nth-child(7) {
    left: 84.5%;
}
#report .graph-wrap.more .dot li:nth-child(8) {
    left: 98.2%;
}

#report .graph-wrap.less .dot li:nth-child(1) {
    left: 2.4%;
}
#report .graph-wrap.less .dot li:nth-child(2) {
    left: 21.5%;
}
#report .graph-wrap.less .dot li:nth-child(3) {
    left: 40.6%;
}
#report .graph-wrap.less .dot li:nth-child(4) {
    left: 59.6%;
}
#report .graph-wrap.less .dot li:nth-child(5) {
    left: 78.7%;
}
#report .graph-wrap.less .dot li:nth-child(6) {
    left: 97.7%;
}
#report .graph-wrap.less .dot li:nth-child(n+7) {
    display: none;
}

#report .graph-wrap .explain {
    margin-top: 2px;
}

#report .report-none {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 25px;
    font-weight: 800;
    color: #3d2416;
}

/* 성적확인 팝업 deem */
.web.deem {
    overflow: hidden;
}
.web.deem #study.show  {
    z-index: 2;
}
.web.deem .scale.show::after{
    content: '';
    position: fixed;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: rgba(0,0,0,0.4) !important;

    -webkit-animation-name: openPop;
    animation-name: openPop;
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
}

/* 환경 설정 */
#preference .preference-top {
    position: relative;
}

#preference h3 {
    font-size: 36px;
    letter-spacing: -0.72px;
    color: #3d2416;
    font-weight: bold;
    text-align: center;
}

#preference .preference-nav {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    gap: 30px;
}

#preference .preference-nav li {
    width: 70px;
    height: 27px;
    background: #ebe0cf;
    color: #b8a68c;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    position: relative;
    font-size: 16px;
    font-weight: 500;
}

#preference .preference-nav li:not(:last-child)::after {
    content: '';
    width: 10px;
    height: 16px;
    background: url(../img/web/preference_top_arrow.svg) no-repeat center;
    background-size: 100%;
    position: absolute;
    right: -15px;
    transform: translateX(50%);
}

#preference .preference-nav li.active {
    background: #8f7156;
    color: #fff;
}

#preference .preference-nav li.active::after {
    background-image: url(../img/web/preference_top_arrow_on.svg);
}

#preference .preference-middle {
    width: calc(100% - 120px);
    aspect-ratio: 960/426;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 16px 0 rgba(61, 36, 22, 0.12);
    margin: 24px auto 16px;
    padding: 20px;
    position: relative;
}

#preference .preference-middle-top {
    display: flex;
    gap: 18px;
    align-items: center;
    font-weight: 600;
    margin-bottom: 17px;
}

#preference .preference-middle-top span {
    font-size: 18px;
    color: #8f7156;
}

#preference .preference-middle-top p {
    font-size: 22px;
    letter-spacing: -0.88px;
    color: #3d2416;
}

#preference .preference-contents {
    height: calc(100% - 39px);
    border-radius: 8px;
    background: #fff9f5;
    padding: 20px;
}

#preference .preference-btn {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #665f56 url(../img/web/preference_next.svg) no-repeat center;
    background-size: 25%;
    position: absolute;
    top: 208px;
}

#preference .preference-prev {
    transform: rotate(180deg);
    left: -60px;
}

#preference .preference-next {
    right: -60px;
}

#preference .preference-contents p {
    font-size: 18px;
    letter-spacing: -0.72px;
    color: #62605c;
    margin-bottom: 10px;
}

#preference .preference-contents p.align {
    display: flex;
    align-items: center;
    margin-top: -3px;
}

#preference .preference-contents p.second {
    padding-left: 30px;
}

#preference .preference-contents p .num {
    display: inline-flex;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #8f7156;
    font-size: 18px;
    color: #fff;
    font-weight: 600;
    align-items: center;
    justify-content: center;
    margin-right: 8px;
}

#preference .preference-contents p .quotation {
    font-weight: 500;
    color: #3d2416;
}

#preference .mini-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 28px;
    background: #fff;
    border-radius: 4px;
    border: 1px solid #ccc;
    font-size: 17px;
    letter-spacing: -0.68px;
    font-weight: 500;
    color: #444;
    margin: 0 4px 0 6px;
}

#preference .mini-btn.gray {
    background: #eee;
}

#preference .mini-arrow {
    display: inline-block;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: url(../img/web/preference_next.svg) no-repeat center #665f56;
    background-size: 25%;
    margin: 0 4px 0 8px;
}

#preference .mini-happy {
    display: inline-block;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: url(../img/web/preference_smile.png) no-repeat center;
    background-size: 100%;
    margin-right: 4px;
}

#preference .mini-sad {
    display: inline-block;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: url(../img/web/preference_sad.png) no-repeat center;
    background-size: 100%;
    margin: 0 4px 0 8px;
}

#preference .mini-mic {
    display: inline-block;
    width: 28px;
    height: 28px;
    border-radius: 4px;
    background: url(../img/web/preference_mic_on.png) no-repeat center #f58b45;
    background-size: 60%;
    border: 1px solid #f5601d;
    margin: 0 4px 0 8px;
}

#preference .preference-group {
    display: flex;
    justify-content: center;
    gap: 50px;
    margin-top: 17px;
}

#preference .preference-group li {
    width: 170px;
    height: 264px;
    background: no-repeat center bottom 24px;
    display: flex;
    align-items: flex-end;
}

#preference .preference-group li button {
    width: 160px;
    height: 48px;
    border-radius: 24px;
    background: #fff;
    border: 2px solid #ccc;
    padding-left: 20px;
    font-size: 22px;
    font-weight: 600;
    position: relative;
}

#preference .preference-group li button::before {
    content: '';
    width: 28px;
    height: 28px;
    background: url(../img/web/check_g.png) no-repeat center #eee;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 10px;
    transform: translateY(-50%);
}

#preference .preference-group button.active {
    border-color: #f5601d;
    background: #f58b45;
    color: #fff;
}

#preference .preference-group button.active::before {
    background-color: #f5601d;
    background-image: url(../img/web/check_w.png);
}

#preference .preference-group .group-1 {
    background-image: url(../img/web/preference_group_1.svg);
}
#preference .preference-group .group-2 {
    background-image: url(../img/web/preference_group_2.svg);
}
#preference .preference-group .group-3 {
    background-image: url(../img/web/preference_group_3.svg);
}
#preference .preference-group .group-4 {
    background-image: url(../img/web/preference_group_4.svg);
}

#preference .preference-sound-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(100% - 80px);
    height: 60px;
    margin: 20px auto 8px;
    border-radius: 8px;
    border: 1px solid #ebd6c5;
    background: #fbf3ec;
}

#preference .preference-sound-btn .btn-area {
    display: flex;
    align-items: center;
    gap: 8px;
}

#preference .preference-sound-btn.acc {
    gap: 30px;
}

#preference .preference-sound-btn.acc p {
    color: #8f7156;
    letter-spacing: -0.72px;
    font-weight: 600;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

#preference .preference-sound-btn.acc p:first-child::before,
#preference .preference-sound-btn.acc p:last-child::after {
    content: '';
    display: inline-block;
    width: 20px;
    height: 20px;
    background: url(../img/web/preference_arrow.png) no-repeat center;
    background-size: contain;
}

#preference .preference-sound-btn.acc p:last-child::after {
    transform: rotate(180deg);
}

#preference .preference-sound-btn.acc button {
    border: 2px solid #ccc;
    background: #fff;
    color: #444;
    padding: 0 18px;
}

#preference .preference-sound-btn.acc button::before {
    content: '';
    width: 22px;
    height: 22px;
    background: url(../img/web/check_g.png) no-repeat center #eee;
    background-size: 65%;
    border-radius: 50%;
    margin-right: 8px;
}

#preference .preference-sound-btn.acc button.active {
    border-color: #f5601d;
    background: #f58b45;
    color: #fff;
}

#preference .preference-sound-btn.acc button.active::before {
    background-image: url(../img/web/check_w.png);
    background-color: #f5601d;
}

#preference .preference-sound-btn.model {
    gap: 40px;
    margin-top: 26px;
}

#preference .preference-sound-btn.model .btn-area {
    width: 53.2%;
    justify-content: center;
}

#preference .preference-sound-btn.model .btn-area button {
    width: 40px;
    height: 40px;
    border: 1px solid;
    font-size: 16px;
    font-weight: 500;
    border-radius: 4px;
}

#preference .preference-sound-btn.model button {
    flex-shrink: 0;
}

#preference .preference-sound-btn.model button:not(:disabled) {
    background: #f58b45;
    color: #fff;
    border-color: #f58b45;
}

#preference .preference-sound-btn.model button:disabled {
    border-color: #ccc;
    background-color: #eee;
    color: #ccc;
}

#preference .preference-sound-btn.model button.complete {
    background-color: #8f7156;
    border-color: #8f7156;
    pointer-events: none;
}

#preference .preference-sound {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: calc(100% - 80px);
    height: 60px;
    padding: 8px;
    margin: 0 auto;
    border-radius: 8px;
    background: #3d2416;
}

#preference .preference-sound button {
    width: 44px;
    height: 44px;
    border-radius: 4px;
    border: 1px solid #ccc;
    background: #eee no-repeat center;
    flex-shrink: 0;
}

#preference .preference-sound button.active {
    background-color: #f58b45;
    border-color: #f5601d;
}

#preference .preference-sound button.speaker {
    background-image: url(../img/web/preference_speaker.svg);
    background-size: 48%;
}
#preference .preference-sound button.speaker.active {
    background-image: url(../img/web/preference_speaker_on.svg);
}

#preference .preference-sound button.mic {
    background-image: url(../img/web/preference_mic.png);
    background-size: 52%;
}
#preference .preference-sound button.mic.active {
    -webkit-animation-name: twinkle;
    animation-name: twinkle;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
}

@keyframes twinkle {
    0% {
        background-image: url(../img/web/preference_mic_on.png);
    }
    49% {
        background-image: url(../img/web/preference_mic_on.png);
    }
    50% {
        background-image: none;
    }
    100% {
        background-image: none;
    }
}

#preference .preference-sound p {
    margin: 0;
    font-size: 28px;
    font-weight: 600;
    color: #fff;
    position: relative;
    width: 100%;
    text-align: center;
}

#preference .preference-sound p::after {
    content: '';
    width: 36px;
    height: 36px;
    display: block;
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    background: no-repeat center;
    background-size: 100%;
}

#preference .preference-sound p.happy::after {
    background-image: url(../img/web/preference_smile.png);
}

#preference .preference-sound p.sad::after {
    background-image: url(../img/web/preference_sad.png);
}

#preference .preference-bottom ul {
    width: calc(100% - 120px);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    border: 1px solid #d5c5ae;
    border-radius: 12px;
    padding: 8px 0;
    margin: 0 auto;
}

#preference .preference-bottom li {
    font-size: 20px;
    letter-spacing: -0.8px;
    color: #3d2416;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

#preference .preference-bottom input {
    max-width: 60px;
    color: #f58b45;
}

#preference .preference-bottom input:disabled {
    max-width: 200px;
    color: #222;
}

#preference .wave-wrap {
    background: rgba(255, 249, 245, 0.7);
    position: absolute;
    z-index: 1;
    left: 130px;
    top: 160px;
    width: 900px;
    height: 260px;
    display: none;
    align-items: center;
    justify-content: center;
}

#preference .wave-wrap .Intonationwav {
    width: 100%;
}

.smartphone #preference .wave-wrap {
    left: 10.15625vw;
    top: 13.7vw;
    width: 70.3125vw;
    height: 20.3125vw;
}

.desktop .modal.preference-modal img {
    max-width: 34px;
}

.smartphone .modal.preference-modal img {
    max-width: 2vw;
}

.desktop span.preference-modal img,
.smartphone span.preference-modal img {
    max-height: 35px;
    margin-right: 4px;
    position: relative;
    top: 6px;
}

.desktop .preference-modal .modal-pop >div:nth-child(1) p,
.smartphone .preference-modal .modal-pop >div:nth-child(1) p {
    display: flex;
    align-items: center;
    flex-direction: column;
    line-height: 1.5;
}

.desktop .preference-modal .column,
.smartphone .preference-modal .column,
.preference-modal .column {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    gap: 2%;
}

/* 단어 클리닉 */

#word .word-top {
    display: flex;
    align-items: center;
    justify-content: center;
}

#word .word-top .select-wrap {
    max-width: 200px;
    margin-right: 4px;
}

#word .word-top .select-wrap:nth-child(2) {
    margin-right: 16px;
}

#word .word-top > input[type="checkbox"] {
    margin-right: 40px;
}

#word .word-top > input[type="checkbox"]:checked {
    pointer-events: none;
}

#word .word-total {
    font-size: 18px;
    font-weight: 500;
    letter-spacing: -0.72px;
    color: #666;
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 16px;
}

#word .word-total span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #8f7156;
    border-radius: 14px;
    padding: 0 14px;
    font-size: 16px;
    height: 28px;
    color: #fff;
    letter-spacing: 0;
}

#word .word-bottom {
    width: 100%;
    height: calc(100% - 72px);
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    margin-top: 24px;
    box-shadow: 0 4px 16px 0 rgba(61, 36, 22, 0.12);
}

#word .table {
    table-layout: fixed;
}

#word .table colgroup col:first-child {
    width: 60px;
}
#word .table colgroup col:nth-child(2) {
    width: 200px;
}
#word .table colgroup col:nth-child(3) {
    width: 100px;
}
#word .table colgroup col:nth-child(4) {
    width: 252px;
}
#word .table colgroup col:nth-child(5) {
    width: 303px;
}

#word .word-table {
    height: calc(100% - 80px);
    overflow: hidden auto;
}

#word .word-table td:not(:nth-child(5)) {
    text-align: center;
}

#word .word-table td:nth-child(2) {
    padding: 10px;
}

#word .word-table td:nth-child(4) {
    cursor: pointer;
}

#word .word-table td p {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#word .popup-word-top {
    width: 440px;
    height: 51px;
    background: #f5efe6;
    font-size: 20px;
    font-weight: 600;
    color: #3d2416;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

#word .popup-word-top span {
    background: rgba(143, 113, 86, 0.8);
    height: 27px;
    border-radius: 13.5px;
    padding: 0 12px;
    display: flex;
    align-items: center;
    font-size: 16px;
    color: #fff;
    font-weight: 500;
}

#word .popup-word-middle {
    height: 124px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 12px;
}

#word .popup-word-middle p {
    font-size: 22px;
    font-weight: 600;
}

#word .popup-word-middle span {
    font-size: 20px;
    letter-spacing: -0.6px;
    color: #666;
}

/* 모바일 */
/* 가로 모드 기준 */
/* 18px = 1.40625vw / 16px = 1.25vw */
body.smartphone {
    overflow: auto;
}

.login .wrap#mobile {
    width: 100vw;
}

.web:not(.login) .wrap#mobile {
    width: 100vw;
    aspect-ratio: 16/9;
    height: auto;
    z-index: 0;
}

#mobile button {
    color: inherit;
}

#mobile .contents-left {
    width: 9.375%;
    height: 100%;
    float: left;
    background: #5162b8;
    border-radius: 0 40px 40px 0;
    position: relative;
    transition: all 0.2s ease-in-out;
}

#mobile .contents-left.close {
    width: 6.25%;
}

.login #mobile .contents-left,
.login #mobile .contents-right {
    display: none;
}

#mobile .nav {
    width: 86.67%;
    height: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 0.625vw;
}

#mobile .nav li {
    width: 100%;
    aspect-ratio: 1/1;
    font-size: 1.40625vw;
}

#mobile .nav li button {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    color: #bdc0ff;
    font-weight: 500;
    border-radius: 23%;
    padding-top: 64.42%;
    background: no-repeat top 20% center;
    background-size: auto 46.15%;
    transition: all 0.2s ease-in-out;
}

#mobile .nav li .main {
    background-image: url(../img/web/nav_1_off.svg);
}
#mobile .nav li .word {
    background-image: url(../img/web/nav_2_off.svg);
}
#mobile .nav li .report {
    background-image: url(../img/web/nav_3_off.svg);
}
#mobile .nav li .point {
    background-image: url(../img/web/nav_4_off.svg);
}

#mobile .nav li.active button {
    color: #fff;
    background-color: #28358f;
}

#mobile .nav li.active .main {
    background-image: url(../img/web/nav_1_on.svg);
}
#mobile .nav li.active .word {
    background-image: url(../img/web/nav_2_on.svg);
}
#mobile .nav li.active .report {
    background-image: url(../img/web/nav_3_on.svg);
}
#mobile .nav li.active .point {
    background-image: url(../img/web/nav_4_on.svg);
}

#mobile .close .nav li {
    background-size: 3.125vw 3.125vw;
}

#mobile .close .nav li button {
    font-size: 0;
    padding: 0;
    color: transparent;
    background-position: center center;
}

#mobile .nav-btn {
    width: 1.875vw;
    height: 6.40625vw;
    border: 2px solid #ccc;
    background: #eee;
    position: absolute;
    right: -1.875vw;
    top: calc(50% - 3.203125vw);
    border-radius: 0 0.625vw 0.625vw 0;
    z-index: 1;
}

#mobile .nav-btn::after {
    content: '';
    width: 0.703125vw;
    height: 0.9375vw;
    background: url(../img/web/nav_arrow.svg) no-repeat center;
    background-size: 100%;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    transition: 0.2s ease-in-out;
}

#mobile .user-list .nav-user {
    width: 2.65625vw;
    border: 0.234375vw solid #8f7156;
    border-radius: 0.625vw;
    font-size: 1.171875vw;
    font-weight: 900;
    letter-spacing: -0.046875vw;
    color: #8f7156;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

#mobile .user-list .nav-user span {
    font-size: 0;
}

#mobile .nav-link {
    position: absolute;
    left: 50%;
    bottom: 5.859375vw;
    transform: translateX(-50%);
    font-size: 1.40625vw;
    font-weight: 500;
    color: #fff;
    letter-spacing: -0.05vw;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.78125vw;
    width: 100%;
    opacity: 1;
    transition: 0.2s ease-in-out;
}

#mobile .nav-link::after {
    content: '';
    width: 1.875vw;
    height: 1.875vw;
    background: url(../img/web/nav_link_arrow.png) no-repeat center #28358f;
    background-size: 66.66%;
    border-radius: 50%;
}

#mobile .close .nav-link {
    font-size: 0;
}

#mobile .contents-right {
    width: 90.625%;
    height: 9.72%;
    float: left;
    padding: 0 3.125%;
    border-bottom: 1px solid #d7cdbe;
}

#mobile .contents-right + div:not(#login) {
    width: 90.625%;
    height: 90.28%;
    float: left;
    padding: 3.125%;
    position: relative;
}

#mobile .header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: 100%;
}

#mobile .header > * {
    display: flex;
    align-items: center;
    height: 100%;
}

#mobile .header .left {
    width: 17.13%;
}

#mobile .header .logo {
    width: 100%;
    height: 55.55%;
    background: url(../img/web/logo.svg) no-repeat left center;
    background-size: auto 100%;
    padding-left: 73%;
    font-weight: bold;
    white-space: nowrap;
}

#mobile .user-name {
    font-weight: 600;
    font-size: 1.5625vw;
    padding: 0.625vw;
}

#mobile .user-point {
    height: 33.33%;
    background: #f58b45;
    border-radius: 4px;
    font-size: 1.25vw;
    font-weight: 600;
    color: #fff;
    display: flex;
    align-items: center;
    padding: 0.625vw;
    margin-right: 2.34375vw;
}

#mobile .user-list {
    height: 100%;
    display: flex;
    align-items: center;
    height: 41.6%;
    gap: 2.34375vw;
}

#mobile .user-list button {
    height: 100%;
    aspect-ratio: 1/1;
    font-size: 0;
    background: no-repeat center;
    background-size: auto 100%;
    position: relative;
}

#mobile .user-list .attendance {
    background-image: url(../img/web/header_1.svg);
}
#mobile .user-list .notice {
    background-image: url(../img/web/header_2.svg);
}
#mobile .user-list .registration {
    background-image: url(../img/web/header_3.svg);
}
#mobile .user-list .preference {
    background-image: url(../img/web/header_4.png);
    background-size: 110%;
}
#mobile .user-list .logout {
    background-image: url(../img/web/header_5.svg);
}

#mobile .header .user-list button.active::after {
    content: '';
    width: calc(100% + 4px);
    height: 2px;
    background: #f58b45;
    position: absolute;
    left: 50%;
    bottom: calc(-100% + 6px);
    transform: translateX(-50%);
}

#mobile #web .header .user-list em.active {
    width: 0.625vw;
    height: 0.625vw;
}

#mobile .user-list .attendance.active {
    background-image: url(../img/web/header_1_on.svg);
}
#mobile .user-list .notice.active {
    background-image: url(../img/web/header_2_on.svg);
}
#mobile .user-list .registration.active {
    background-image: url(../img/web/header_3_on.svg);
}
#mobile .user-list .preference.active {
    background-image: url(../img/web/header_4_on.png);
    background-size: 110%;
}

#mobile .calendar-modal {
    position: absolute;
    z-index: 3;
    border-radius: 0.625vw;
    box-shadow: 0.3125vw 0.3125vw 0.625vw 0 rgba(0, 0, 0, 0.12);

    -webkit-animation-name: openPop;
    animation-name: openPop;
    -webkit-animation-duration: 0.2s;
    animation-duration: 0.2s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

#mobile .calendar-modal.close {
    -webkit-animation-name: closePop;
    animation-name: closePop;
}

#mobile .calendar-modal::after {
    content: '';
    width: 1.953125vw;
    height: 1.953125vw;
    background: #f58b45;
    border-radius: 2px;
    position: absolute;
    top: -0.546875vw;
    left: 3.125vw;
    transform: rotate(45deg);
    z-index: -1;
}

#mobile .calendar-modal .top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 2.34375vw;
    background: #f58b45;
    padding: 0 0.78125vw;
    border-radius: 0.625vw 0.625vw 0 0;
}

#mobile .calendar-modal .top p {
    color: #fff;
    font-size: 1.40625vw;
    font-weight: 500;
    letter-spacing: -0.72px;
}

#mobile .calendar-modal .top button {
    width: 1.5625vw;
    height: 1.5625vw;
    background: url(../img/web/header_close.svg) no-repeat center;
    background-size: 100%;
}

#mobile .calendar-modal .bottom {
    border: 2px solid #f58b45;
    background: #fff;
    padding: 0.78125vw 1.171875vw;
    font-size: 1.40625vw;
    border-radius: 0 0 0.625vw 0.625vw;
}

#mobile .header .calendar-modal {
    position: fixed;
    top: 5.3125vw;
    right: 5.46875vw;
    width: 33.125vw;
}

#mobile .header .calendar-modal::after {
    left: 2.5vw;
}

#mobile .header .calendar-modal .bottom {
    padding: 0.78125vw;
}

#mobile .header .calendar-modal li {
    padding: 1.015625vw 1.25vw;
    background: #fbf3ec;
    border-radius: 0.625vw;
    display: flex;
    font-size: 1.40625vw;
    color: #3d2416;
    font-weight: 600;
}

#mobile .header .calendar-modal li + li {
    margin-top: 0.625vw;
}

#mobile .header .calendar-modal li > span {
    color: #f58b45;
    letter-spacing: -0.72px;
    font-weight: 500;
    width: 9.84375vw;
    flex-shrink: 0;
}

#mobile .header .calendar-modal img {
    max-width: 1.875vw;
    max-height: 2.1875vw;
}

#mobile .header .calendar-modal img.plum {
    position: relative;
    top: -0.234375vw;
}

#mobile .header .calendar-modal li div {
    display: flex;
    flex-wrap: wrap;
}

#mobile .header .calendar-modal li div p {
    margin-bottom: 1.25vw;
    width: 100%;
}

#mobile .header .calendar-modal li div span {
    display: inline-flex;
    align-items: center;
    margin-right: 1.5625vw;
    gap: 0.625vw;
}

#mobile .tab-list {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.74%;
}

#mobile .tab-list li {
    width: 14.8%;
    aspect-ratio: 160/48;
}

#mobile .tab-list button {
    font-weight: 600;
    color: #3951cc;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    border-radius: 50px;
    background: #fff;
    border: 0.15625vw solid #3951cc;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5625vw;
}

#mobile .tab-list .active button {
    background: #28358f;
    border-color: #28358f;
    color: #fff;
}

#mobile .tab-list .none button {
    background: #e3dbce;
    border-color: #e3dbce;
    color: #ccc;
    pointer-events: none;
}

#mobile .popup {
    border-radius: 8px;
    max-width: 100vw;
}

#mobile .popup-top {
    height: 3.6vw;
    font-size: 1.40625vw;
    font-weight: 600;
    padding: 0 1.171875vw;
    border-bottom: 1px solid #eee;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

#mobile .popup-top button {
    width: 1.25vw;
    aspect-ratio: 1/1;
    background: url(../img/web/popup_close.svg) no-repeat center;
    background-size: 100%;
}

#mobile .popup-middle {
    padding: 1.5625vw;
    overflow-x: auto;
}

#mobile .popup-bottom {
    background: #f6f6f6;
    border-top: 1px solid #ddd;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 5.15625vw;
    gap: 0.9375vw;
}

#mobile .calendar-top {
    margin-bottom: 0.9375vw;
}

#mobile .calendar-top .left {
    font-size: 1.40625vw;
}

#mobile .calendar-top .left span {
    height: 2.109375vw;
    padding: 0 0.9375vw;
    border-radius: 8px;
    margin-left: 0.3125vw;
    font-size: 1.25vw;
}

#mobile .calendar-choice {
    font-size: 1.875vw;
}

#mobile .calendar-choice p {
    width: 12.5vw;
    text-align: center;
}

#mobile .calendar-button {
    width: 0.9375vw;
    aspect-ratio: 12/20;
    background: url(../img/web/calendar-arrow.svg) no-repeat center;
    background-size: auto 100%;
}

#mobile .calendar-top .right {
    font-size: 1.40625vw;
    letter-spacing: -0.05625vw;
}

#mobile .calendar-top .right span {
    height: 2.109375vw;
    padding: 0 0.9375vw;
    border-radius: 8px;
    margin-left: 0.3125vw;
}

#mobile .contents-left + .contents-right + div .calendar-bottom col:nth-child(-n + 6) {
    width: calc(81.171875vw / 7);
}

#mobile .contents-left.close + .contents-right + div .calendar-bottom col:nth-child(-n + 6) {
    width: calc(84.296875vw / 7);
}

#mobile .calendar-bottom td {
    height: 6.71875vw;
    border: 1px solid #ddd;
    border-bottom: 0;
    position: relative;
}

#mobile .calendar-td .num {
    height: 1.796875vw;
    width: 1.796875vw;
    font-size: 1.09375vw;
}

#mobile .calendar-bottom td.today .calendar-td .num {
    width: 1.71875vw;
    height: 1.71875vw;
    top: -0.078125vw;
    right: -0.078125vw;
}

#mobile .table th {
    height: 2.65625vw;
    background: #a39b90;
    border: 1px solid #8b8377;
    border-top: 2px solid #3d3425;
    border-bottom-width: 2px;
    color: #fff;
    font-size: 1.25vw;
    font-weight: 500;
    vertical-align: middle;
    letter-spacing: -0.32px;
}

#mobile .table td {
    border: 1px solid #dddddd;
    padding: 1.25vw;
    vertical-align: middle;
    font-size: 1.40625vw;
    letter-spacing: -0.36px;
    color: #444;
}

#mobile .select-wrap::before,
#mobile .select-wrap::after {
    content: '';
    width: 0.9375vw;
    height: 0.546875vw;
    position: absolute;
    top: 50%;
    right: 0.78125vw;
    transform: translateY(-50%);
    transition: all 0.2s ease-in-out;
    background-size: contain;
}

#mobile .select-top {
    height: 3.4375vw;
    border-radius: 0.3125vw;
    padding: 0 2.34375vw 0 0.78125vw;
    font-size: 1.40625vw;
}

#mobile .select-bottom {
    top: calc(100% + 0.3125vw);
    border-radius: 0.3125vw;
    box-shadow: 0.3125vw 0.3125vw 0.625vw 0 rgba(0, 0, 0, 0.12);
    padding: 0.625vw 0;
    font-size: 1.40625vw;
}

#mobile .select-bottom li {
    padding: 0.625vw 0.78125vw;
}

#mobile .select-check .select-bottom li {
    padding: 0.78125vw;
    gap: 0.78125vw;
}

#mobile .select-wrap.big .select-top {
    height: 3.75vw;
    font-size: 1.5625vw;
}

#mobile .select-wrap.big .select-bottom {
    font-size: 1.5625vw;
    max-height: 40vw;
}

/* 공지사항 팝업 가로모드 모바일 */

#mobile .popup-notice {
    position: absolute;
    background-color: #fff;
    color: #000;
    border-radius: 0.625vw;
    box-shadow: 0 1.015625vw 2.109375vw -0.390625vw rgba(50,50,93,.25), 0 0.625vw 1.25vw -0.625vw rgba(0,0,0,.3);
}

#mobile .popup-notice-header {
    height: 3.125vw;
    border-top-right-radius: 0.625vw;
    border-top-left-radius: 0.625vw;
    padding-left: 0.9375vw;
    display: flex;
    align-items: center;
    background-color: #00a37f;
}

#mobile .popup-notice-header p {
    font-size: 1.40625vw;
    letter-spacing: -.04em;
    line-height: 2.03125vw;
    color: #fff;
    width: calc(100% - 3.125vw);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#mobile .popup-notice-header button {
    width: 1.5625vw;
    height: 1.5625vw;
    background: url(../img/web/header_close.svg) no-repeat center;
}

#mobile .popup-notice-inner {
    width: 35.15625vw;
    max-height: 50.78125vw;
    overflow: auto;
    word-break: keep-all;
    padding: 0.78125vw;
}

#mobile .popup-notice-inner img {
    width: 100%;
    display: block;
}

#mobile .popup-notice-inner p {
    font-size: 1.40625vw;
    word-break: break-all;
}

#mobile .popup-scroll {
    width: 100%;
    height: 10%;
    position: absolute;
}

#mobile .popup-notice-footer {
    height: 3.90625vw;
    background-color: #f6f6f6;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom-right-radius: 0.625vw;
    border-bottom-left-radius: 0.625vw;
    padding: 1.5625vw;
}

#mobile .popup-notice-footer div {
    display: flex;
    align-items: center;
    gap: 0.3125vw;
    font-size: 1.40625vw;
}

#mobile .popup-notice-footer button {
    font-size: 1.171875vw;
    letter-spacing: -.04em;
    line-height: 1.71875vw;
    height: 2.34375vw;
    border-radius: 0.3125vw;
    padding: 0 1.5625vw;
    justify-content: center;
    align-items: center;
    display: inline-flex;
    white-space: nowrap;
    border: 0.078125vw solid #ccc;
}

/* 모바일 가로모드 메인 */

#mobile #main .swiper {
    min-height: 26.5625vw;
    left: -0.546875vw;
}

#mobile #main .swiper-slide {
    width: 17.1875vw;
    margin-right: 1.953125vw;
}

#mobile #main .classroom-today {
    font-size: 2.1875vw;
    margin: 3.125vw 0;
}

#mobile #main .classroom-slide-wrap {
    max-width: 76.5625vw;
    left: 1%;
}

#mobile #main .classroom-slide-wrap::after {
    width: 0.625vw;
    height: 21.484375vw;
}

#mobile #main .swiper-button-prev,
#mobile #main .swiper-button-next {
    width: 4.87%;
    height: auto;
    aspect-ratio: 1/1;
    top: 40%;
}

#mobile #main .swiper-button-prev {
    left: -6%;
}

#mobile #main .swiper-button-next {
    right: -4%;
}

#mobile #main .swiper-button-prev::after,
#mobile #main .swiper-button-next::after {
    font-size: 70%;
}

#mobile #main .classroom-item img {
    border-radius: 8px;
    box-shadow: 4px 4px 8px 0 rgba(0, 0, 0, 0.2);
}

#mobile #main .classroom-item .top {
    margin-bottom: 2%;
    max-width: 16.53vw;
}

#mobile #main .classroom-item .bottom {
    font-size: 1.71vw;
    height: 4.45vw;
    max-width: 16.53vw;
}

#mobile #main .swiper-slide.passed::after {
    width: 44.86%;
    height: auto;
    aspect-ratio: 96/52;
    background-size: 100%;
    left: 0;
    top: 59%;
}

#mobile #main .swiper-pagination {
    width: 28.125vw;
    height: auto;
    aspect-ratio: 90/1;
    margin-top: 1.8vw;
}

#mobile #main .classroom-top {
    margin: 3.125vw 0;
    gap: 2.22%;
}

#mobile #main .classroom-top-item {
    height: 3.8vw;
    border-radius: 8px;
    font-size: 1.5625vw;
    gap: 1.25vw;
}

#mobile #main .classroom-top-item span {
    font-size: 1.40625vw;
}

#mobile #main .classroom-top-item p {
    min-height: 1.5625vw;
}

#mobile #main .popup-btn-wrap {
    gap: 5.46875vw;
    width: 25.15vw;
}

#mobile #main .popup-btn {
    font-size: 1.5625vw;
}

#mobile #main .popup-btn img {
    width: 6.25vw;
    margin-bottom: 0.625vw;
}

#mobile #main .classroom-pop div {
    width: 9.765625vw;
    height: auto;
    aspect-ratio: 125/160;
    margin-right: 1.25vw;
    border-radius: 4px;
    box-shadow: 4px 4px 8px 0 rgba(0, 0, 0, 0.2);
}

#mobile #main .classroom-pop ul {
    gap: 0.625vw;
}

#mobile #main .classroom-pop ul li {
    height: 3.75vw;
    font-size: 1.40625vw;
    width: 29.296875vw;
    border-radius: 4px;
}

#mobile #main .classroom-pop ul li p {
    width: 9.6875vw;
}

#mobile #main .main-none {
    height: 20.3125vw;
}

#mobile #main .btn-change {
    width: 3.75vw;
    height: 3.75vw;
    border-radius: 0.9375vw;
    border-width: 0.15625vw;
    right: 4.84375vw;
    background-size: 50%;
}

#mobile #main .btn-change.squ {
    background-size: 50%;
}

#mobile #main .classroom-list-wrap {
    gap: 6.25vw;
}

#mobile #main .classroom-list {
    border-radius: 0.9375vw;
    font-size: 1.40625vw;
    box-shadow: 0 0.3125vw 1.25vw 0 rgba(51, 44, 39, 0.12);
}

#mobile #main .classroom-list.left {
    width: 20vw;
}

#mobile #main .classroom-list.left::after {
    width: 3.125vw;
    height: 3.125vw;
    border-radius: 1.5625vw;
    right: -4.6875vw;
    background-size: 30%;
}

#mobile #main .classroom-list.right {
    width: 48.125vw;
}

#mobile #main .classroom-list-top {
    height: 3.75vw;
    border-width: 0.15625vw;
    border-radius: 0.9375vw 0.9375vw 0 0;
    font-size: 1.5625vw;
}

#mobile #main .classroom-list-bottom {
    border-width: 0.078125vw;
    border-top: 0;
    border-radius: 0 0 0.9375vw 0.9375vw;
    padding: 0.625vw;
    height: 27.8125vw;
}

#mobile #main .classroom-list.none .classroom-list-top {
    border-width: 0.078125vw;
}

#mobile #main .classroom-list-none {
    font-size: 1.5625vw;
}

#mobile #main .classroom-list-none img {
    width: 1.875vw;
    margin-bottom: 0.78125vw;
}

#mobile #main .classroom-list-contents::-webkit-scrollbar {
    width: 0.46875vw;
}

#mobile #main .classroom-list-contents::-webkit-scrollbar-track {
    margin: 0 0 0.625vw;
}

#mobile #main .right .classroom-list-contents::-webkit-scrollbar-track {
    margin: 0 0 0.625vw;
}

#mobile #main .left .classroom-list-contents::-webkit-scrollbar-track {
    margin: 0;
}

#mobile #main .classroom-list-contents.scroll {
    padding-right: 0.390625vw;
}

#mobile #main .classroom-list-contents .classroom-list-none-wrap {
    padding-bottom: 0.625vw;
}

#mobile #main .classroom-list li + li {
    margin-top: 0.3125vw;
}

#mobile #main .classroom-list li button {
    height: 3.515625vw;
    border-radius: 0.625vw;
    border-width: 0.15625vw;
    font-size: 1.71875vw;
}

#mobile #main .classroom-list.right .classroom-list-bottom {
    padding-bottom: 0;
}

#mobile #main .classroom-list.right .classroom-list-contents {
    padding-right: 0.625vw;
    padding-bottom: 0.625vw;
}

#mobile #main .classroom-list.right li button {
    height: 3.75vw;
    border-width: 0.078125vw;
}

/* 모바일 가로모드 포인트 */

#mobile #point .tab-contents {
    height: calc(100% - 5.625vw);
    box-shadow: 0 2px 8px 0 rgba(61, 36, 22, 0.12);
    border-radius: 8px;
    padding: 1.5625vw;
    margin-top: 1.875vw;
}

#mobile #point .calendar-wrap > .bottom {
    max-height: 28.28125vw;
}

#mobile #point .calendar-bottom td {
    height: 6.25vw;
}

#mobile #point .calendar-point {
    gap: 1.5625vw;
}

#mobile #point .calendar-point div {
    width: 2.8125vw;
    height: 2.8125vw;
    background-size: contain;
    background-position: center;
}

#mobile #point .calendar-point span {
    width: 1.875vw;
    height: 1.875vw;
    border-width: 0.15625vw;
    font-size: 1.09375vw;
    bottom: -0.859375vw;
    right: -0.625vw;
}

#mobile #point .point-header {
    margin-bottom: 1.25vw;
}

#mobile #point .point-header-bottom ul {
    gap: 1.25vw;
    margin-bottom: 1.25vw;
}

#mobile #point .point-header-bottom li {
    min-width: 26.25vw;
    height: 3.75vw;
    border-radius: 4px;
    font-size: 1.40625vw;
    gap: 1.25vw;
}

#mobile #point .point-header-bottom li:last-child {
    gap: 2.34375vw;
}

#mobile #point .point-header-bottom li p {
    gap: 0.625vw;
}

#mobile #point .point-header-bottom li img {
    max-width: 1.875vw;
    max-height: 2.1875vw;
}

#mobile #point .point-header-bottom li .plum img {
    top: -0.234375vw;
}

#mobile #point .point-header ~ .point-modal-bottom {
    height: calc(100% - 9.6875vw);
}

#mobile #point .point-month {
    padding: 1.5625vw;
    border-radius: 0.9375vw;
}

#mobile #point .point-header ~ .point-modal-bottom .table-bottom {
    height: calc(100% - 2.96875vw);
}

#mobile #point .point-modal-top {
    font-size: 1.875vw;
}

#mobile #point .point-modal-top p {
    width: 16.328125vw;
}

#mobile #point .point-button {
    width: 0.9375vw;
    height: 1.5625vw;
    background-size: 100%;
}

#mobile #point .point-modal-info {
    margin-top: 1.5625vw;
    height: 3.125vw;
    font-size: 1.40625vw;
    gap: 3.125vw;
}

#mobile #point .point-modal-info p {
    gap: 0.78125vw;
}

#mobile #point .point-modal-info .plum img {
    max-height: 2.5vw;
}

#mobile #point .point-modal-info .coin img {
    max-height: 2.34375vw;
}

#mobile #point .point-modal-info p img {
    margin-right: 0.078125vw;
}

#mobile #point .point-modal-info + div {
    width: 100%;
    overflow-x: auto;
}

#mobile #point .point-modal-info + div::-webkit-scrollbar {
    height: 3px;
}

#mobile #point .point-modal-tb {
    width: 62.5vw;
    max-height: 18.984375vw;
}

#mobile #point .point-modal-table th {
    height: 2.8125vw;
}

#mobile #point .point-modal-table td:nth-last-child(3),
#mobile #point .point-modal-table td:nth-last-child(4),
#mobile #point .point-modal-table td:last-child,
#mobile #point .point-modal-table .text-center {
    padding: 0.625vw;
}

#mobile #point .point-modal-table td:nth-last-child(3) {
    padding: 0.625vw 0;
}

#mobile #point .point-modal-point {
    gap: 0.625vw;
    font-size: 1.25vw;
}

#mobile #point .point-modal-point::before {
    width: 2.34375vw;
}

#mobile #point .point-modal-point.C::before {
    height: 2.34375vw;
}

#mobile #point .point-modal-point.P::before {
    height: 2.5vw;
}

#mobile #point .point-modal-table col:nth-child(1) {
    width: calc(62.5vw * 0.1525);
}
#mobile #point .point-modal-table col:nth-child(2) {
    width: calc(62.5vw * 0.235);
}
#mobile #point .point-modal-table col:nth-child(3) {
    width: calc(62.5vw * 0.0625);
}
#mobile #point .point-modal-table col:nth-child(4) {
    width: calc(62.5vw * 0.092);
}
#mobile #point .point-modal-table col:nth-child(5) {
    width: calc(62.5vw * 0.29);
}

#mobile #point .point-month col:nth-child(1) {
    width: calc(81.171875vw * 0.1173);
}
#mobile #point .point-month col:nth-child(2) {
    width: calc(81.171875vw * 0.1807);
}
#mobile #point .point-month col:nth-child(3) {
    width: calc(81.171875vw * 0.048);
}
#mobile #point .point-month col:nth-child(4) {
    width: calc(81.171875vw * 0.0826);
}
#mobile #point .point-month col:nth-child(5) {
    width: calc(81.171875vw * 0.45);
}

#mobile #point .point-top {
    gap: 1.25vw;
    margin: 1.5625vw 0 1.25vw;
}

#mobile #point .point-top li {
    height: 3.75vw;
    border-radius: 0.625vw;
    font-size: 1.40625vw;
}

#mobile #point .point-top li:not(.point) span {
    margin-left: 1.25vw;
}

#mobile #point .point-top li div {
    gap: 0.3125vw;
}

#mobile #point .point-top li div + div {
    margin-left: 1.875vw;
}

#mobile #point .point-top li img {
    max-width: 1.875vw;
    max-height: 2.1875vw;
}

#mobile #point .point-top li.point div:first-child img {
    top: -0.15625vw;
}

#mobile #point .point-month {
    border-radius: 0.9375vw;
    padding: 1.5625vw;
}

#mobile #point .point-month td:nth-last-child(3) {
    padding: 0 0.625vw;
}

#mobile #point .racing-wrap .side {
    width: 3.125vw;
}

#mobile #point .racing-wrap .side p {
    font-size: 2.1875vw;
    gap: 0.625vw;
    letter-spacing: 0.21875vw;
}


#mobile #point .racing-wrap .side p img {
    max-width: 2.34375vw;
}

#mobile #point .racing-area {
    height: 26.796875vw;
    border: 0.078125vw solid #ddd;
}

#mobile #point .racing-area li {
    border: 0.234375vw solid #ede8e0;
    height: 3.59375vw;
}

#mobile #point .racing-area li + li {
    margin-top: 0.3125vw;
}

#mobile #point .racing-car {
    width: 3.125vw;
    gap: 0.625vw;
}

#mobile #point .racing-car p {
    font-size: 1.25vw;
    left: calc(-100% - 0.9375vw);
    font-size: 1.40625vw;
}

#mobile #point .racing-car p.user {
    font-size: 1.25vw;
    height: 2.109375vw;
    padding: 0 0.9375vw;
    border-radius: 1.0546875vw;
    left: calc(-100% - 2.5vw);
}

#mobile #point .racing-car .car {
    width: 3.125vw;
    height: 3.125vw;
}

#mobile #point .racing-car .car::after {
    width: 1.875vw;
    height: 1.875vw;
    left: calc(100% + 0.625vw);
}

#mobile #point .point-pop {
    width: 20.3125vw;
    height: 5.78125vw;
    left: -1.25vw;
    top: -7.18745vw;
    border-radius: 0.625vw;
    box-shadow: 0.3125vw 0.3125vw 0.625vw 0 rgba(0, 0, 0, 0.12);
}

#mobile #point .racing-area li:nth-child(-n + 2) .point-pop {
    top: 4.53125vw;
}

#mobile #point .point-pop::after {
    width: 1.953125vw;
    height: 1.953125vw;
    border-radius: 0.390625vw;
    top: 4.53125vw;
    left: 1.875vw;
}

#mobile #point .racing-area li:nth-child(-n + 2) .point-pop::after {
    top: -0.703125vw;
}

#mobile #point .point-pop .top {
    height: 2.5vw;
    padding: 0.15625vw 0.78125vw 0;
    font-size: 1.40625vw;
    letter-spacing: -0.056245vw;
    border-radius: 0.625vw 0.625vw 0 0;
}

#mobile #point .point-pop .top button {
    width: 1.171875vw;
    height: 1.171875vw;
}

#mobile #point .point-pop .bottom {
    border: 0.15625vw solid #f58b45;
    height: 3.28125vw;
    border-radius: 0.15625vw 0.15625vw 0.625vw 0.625vw;
    font-size: 1.40625vw;
    padding: 0 1.25vw;
}

/* 모바일 가로모드 알림장 */

#mobile #notice .btn-message {
    right: 3.125vw;
    top: 3.125vw;
}

#mobile #notice .btn-message img {
    margin-right: 0.625vw;
    width: 1.875vw;
}

#mobile #notice .tab-contents {
    height: calc(100% - 5.625vw);
    border-radius: 8px;
    padding: 1.5625vw;
    margin-top: 1.875vw;
    box-shadow: 0 2px 8px 0 rgba(61, 36, 22, 0.12);
}

#mobile #notice .table-wrap {
    height: calc(100% - 2.8125vw);
    margin-top: 1.25vw;
}

#mobile #notice .table td {
    font-size: 1.40625vw;
    border: 0;
    border-bottom: 0.078125vw solid #ddd;
}

#mobile #notice .table td:last-child {
    border-right: 0.078125vw solid #ddd;
    white-space: nowrap;
}

#mobile #notice .table td::before {
    width: 0.078125vw;
}

#mobile #notice .table td .title {
    font-size: 1.5625vw;
    margin-bottom: 0.625vw;
    max-width: 41.953125vw;
}

#mobile #notice .table td .title span,
#mobile #notice .table td .text {
    max-width: 41.953125vw;
}

#mobile #notice .table .file .title::before {
    width: 1.5625vw;
    height: 1.5625vw;
    right: 1.171875vw;
    background-size: 100%;
}

#mobile #notice .table .unread .new .title::after {
    width: 1.40625vw;
    height: 1.40625vw;
    border-radius: 0.46875vw;
    margin-left: 0.46875vw;
    font-size: 1.09375vw;
}

#mobile #notice .notice-send {
    width: 31.40625vw;
}

#mobile #notice .notice-send > li + li {
    margin-top: 1.40625vw;
}

#mobile #notice .notice-send > li p {
    font-size: 1.25vw;
    margin-bottom: 0.546875vw;
}

#mobile #notice .notice-send textarea {
    height: 13.515625vw;
    border-radius: 0.3125vw;
    padding: 0.78125vw;
    font-size: 1.40625vw;
}

#mobile #notice .notice-read {
    width: 62.5vw;
}

#mobile #notice .notice-read th {
    height: 3.359375vw;
    font-size: 1.25vw;
}

#mobile #notice .notice-read td  {
    font-size: 1.40625vw;
    padding: 0 1.25vw;
}

#mobile #notice .notice-read .notice-contents div {
    height: 18.28125vw;
    padding: 0.78125vw 0;
}

#mobile #notice .table-wrap col:nth-child(1) {
    width: calc(81.25vw * 0.057);
}
#mobile #notice .table-wrap col:nth-child(2) {
    width: calc(81.25vw * 0.5961);
}
#mobile #notice .table-wrap col:nth-child(3) {
    width: calc(81.25vw * 0.1538);
}

#mobile #notice .notice-btn-wrap {
    padding: 0.390625vw 0;
}

/* 모바일 가로모드 출석 확인 */
#mobile #attendance .calendar-wrap > .bottom {
    max-height: 33.90625vw;
}

#mobile #attendance .calendar-modal {
    width: 20.3125vw;
    left: 0.625vw;
    top: calc(100% + 1.09375vw);
}

#attendance tr:nth-child(n+5) .calendar-modal {
    top: auto;
    bottom: calc(100% + 1.09375vw);
}

#attendance tr:nth-child(n+5) .calendar-modal::after {
    top: auto;
    bottom: -0.546875vw;
}

/* 모바일 가로모드 교재 등록 */
#mobile #registration .btn-check {
    right: 3.125vw;
    top: 3.125vw;
}

#mobile #registration .btn-check img {
    margin-right: 0.625vw;
    width: 1.5625vw;
}

#mobile #registration .regi-wrap {
    padding-top: 2.34375vw;
}

#mobile #registration .regi-wrap h2 {
    font-size: 2.5vw;
    margin-bottom: 1.5625vw;
}

#mobile #registration .regi-wrap > p {
    font-size: 1.25vw;
}

#mobile #registration .regi-list {
    margin: 2.109375vw auto 0;
    max-width: 46.25vw;
    height: 31.328125vw;
    padding: 5.390625vw 6.71875vw 0;
    background-size: 95%;
}

#mobile #registration .regi-list li + li {
    margin-top: 1.5625vw;
}

#mobile #registration .regi-list li + li:last-child {
    margin-top: 3.125vw;
}

#mobile #registration .regi-list li + li:last-child .btn {
    min-width: 14.53125vw;
}

#mobile #registration .regi-list li > p {
    font-size: 1.25vw;
    margin-bottom: 0.46875vw;
}

#mobile #registration .regi-list li div {
    gap: 0.3125vw;
    font-size: 1.40625vw;
}

#mobile #registration .regi-list li input[type="number"] {
    max-width: 6.25vw;
}

#mobile #registration .regi-list li input:disabled {
    max-width: 21.25vw;
    margin-right: 0.3125vw;
}

#mobile #registration .regi-list li div p {
    font-size: 1.40625vw;
}

#mobile #registration .camera-btn .btn-s {
    min-width: 3.4375vw;
    margin-left: 0.3125vw;
    background-size: 60%;
}

#mobile #registration .select-wrap {
    max-width: 12.5vw;
    margin: 0 0 1.25vw auto;
}

#mobile #registration .table-wrap {
    width: 62.5vw;
}

#mobile #registration .table-bottom {
    max-height: 17.1875vw;
}

#mobile #registration .table-bottom .table {
    width: 62.5vw;
}

#mobile #registration .table td {
    height: 3.4375vw;
    padding: 0 1.171875vw;
}

#mobile #registration .pagination {
    gap: 1.25vw;
    margin-top: 1.5625vw;
}

#mobile #registration .pagination > div {
    gap: 0.3125vw;
}

#mobile #registration .pagination button {
    width: 2.5vw;
    height: 2.5vw;
    font-size: 1.25vw;
    border-radius: 0.3125vw;
    background-size: 50%;
}

/* 모바일 성적 확인 */
#mobile #report .report-top {
    gap: 1.25vw;
}

#mobile #report .report-top .left {
    width: 21.875vw;
}

#mobile #report .report-top .right {
    height: 5vw;
    border-radius: 0.3125vw;
    width: calc(100% - 23.125vw);
}

#mobile #report .report-slide-btn {
    height: calc(100% + 1px);
    width: 1.875vw;
    top: -0.078125vw;
    border-radius: 0.3125vw 0 0 0.3125vw;
    background-size: 33.33%;
}

#mobile #report .report-top .chapter-list {
    gap: 0.9375vw;
    padding: 0 0.9375vw;
    left: 1.796875vw;
    max-width: calc(100% - 3.515625vw);
}

#mobile #report .report-top .chapter-list button {
    height: 3.75vw;
    border-radius: 1.875vw;
    min-width: 7.03125vw;
    padding: 0 0.78125vw;
    border-width: 0.15625vw;
    font-size: 1.5625vw;
}

#mobile #report .report-bottom {
    height: calc(100% - 6.875vw);
    border-radius: 0.9375vw;
    padding: 0.625vw 0.625vw 0.625vw 3.125vw;
    margin-top: 1.875vw;
    box-shadow: 0 0.3125vw 1.25vw 0 rgba(61, 36, 22, 0.12);
}

#mobile #report .report-scroll {
    padding: 2.5vw 2.03125vw 2.5vw 0;
}

#mobile #report .report-title {
    gap: 1.09375vw;
    font-size: 2.8125vw;
    margin-bottom: 2.109375vw;
}

#mobile #report .report-title span {
    height: 2.109375vw;
    padding: 0 0.9375vw;
    border-radius: 1.25vw;
    font-size: 1.25vw;
}

#mobile #report .report-sub {
    font-size: 2.1875vw;
    padding-bottom: 0.15625vw;
    border-width: 0.15625vw;
    margin-bottom: 1.40625vw;
}

#mobile #report .report-info {
    gap: 0.625vw;
}

#mobile #report .report-info.final > li {
    width: calc(50% - 0.3125vw);
}

#mobile #report .report-info.final .bottom {
    font-size: 1.40625vw;
}

#mobile #report .report-info.final .bottom > span {
    font-size: 1.25vw;
    margin-left: 0.46875vw;
}

#mobile #report .report-info.final .bottom p {
    margin-top: 1.25vw;
    font-size: 1.25vw;
}

#mobile #report .report-info.final .bottom p span {
    margin-right: 0.625vw;
}

#mobile #report .report-info.final .bottom p span::before {
    width: 1.5625vw;
    height: 1.5625vw;
    margin-right: 0.3125vw;
}

#mobile #report .report-info .top,
#mobile #report .report-sub-title {
    font-size: 1.40625vw;
    margin-bottom: 0.46875vw;
}

#mobile #report .report-info .top::before,
#mobile #report .report-sub-title::before {
    width: 1.5625vw;
    height: 1.5625vw;
    margin-right: 0.46875vw;
}

#mobile #report .report-info .bottom {
    height: calc(100% - 2.03125vw);
    border-radius: 0.625vw;
    padding: 0.9375vw 1.25vw;
    font-size: 1.25vw;
}

#mobile #report .report-info .bottom.time {
    font-size: 1.40625vw;
}

#mobile #report .report-info .bottom.progress li + li {
    margin-top: 1.5625vw;
}

#mobile #report .report-info .bottom.progress li p:first-child {
    min-width: 7.1875vw;
}

#mobile #report .report-info .bottom.progress li p:last-child {
    min-width: calc(100% - 18.90625vw);
}

#mobile #report .report-info .bottom .box-wrap {
    max-width: 11.71875vw;
    height: 1.25vw;
    border-radius: 0.3125vw;
    border-width: 0.15625vw;
}

#mobile #report .report-info .bottom .box-wrap .box {
    height: 1.25vw;
    border-radius: 0.3125vw;
    top: -0.15625vw;
    left: -0.15625vw;
    max-width: calc(100% + 0.3125vw);
}

#mobile #report .report-info .bottom.point div + div {
    margin-top: 0.625vw;
}

#mobile #report .report-info .bottom.point ul {
    min-width: 13.046875vw;
}

#mobile #report .report-info .bottom.point ul::after {
    width: 0.078125vw;
    height: calc(100% + 0.625vw);
    right: -1.25vw;
    top: -0.234375vw;
}

#mobile #report .report-info .bottom.point li {
    gap: 0.390625vw;
    min-width: 6.484375vw;
}

#mobile #report .report-info .bottom.point li:last-child {
    padding-left: 0.625vw;
}

#mobile #report .report-info .bottom.point li span:last-child {
    margin-left: 0.390625vw;
}

#mobile #report .report-info .bottom.point img {
    max-width: 1.796875vw;
    max-height: 2.1875vw;
}

#mobile #report .report-tob-table {
    margin-top: 1.25vw;
}

#mobile #report .report-test-wrap {
    gap: 0.625vw;
}

#mobile #report .report-test-wrap > .time {
    height: 7.421875vw;
    width: 12.5vw;
    border-radius: 0.625vw;
    font-size: 1.40625vw;
}

#mobile #report .report-test-wrap > .time span {
    font-size: 1.25vw;
    margin-top: 0.625vw;
}

#mobile #report .report-test-wrap .report-table:nth-child(2) {
    width: calc(100% - 13.125vw);
}

#mobile #report .report-test-wrap.new .report-table:nth-child(2) {
    width: calc(75% - 0.625vw);
}

#mobile #report .report-bottom h4 {
    margin: 1.25vw 0;
    font-size: 1.5625vw;
}

#mobile #report .report-bottom .caution {
    font-size: 1.25vw;
    gap: 0.46875vw;
}

#mobile #report .report-bottom .caution::before {
    width: 1.5625vw;
    height: 1.5625vw;
}

#mobile #report .report-test-wrap table th {
    height: 2.8125vw;
    padding-left: 1.25vw;
    font-size: 1.25vw;
}

#mobile #report .report-test-wrap table th::before {
    height: 0.15625vw;
}

#mobile #report .report-test-wrap table th button {
    width: 1.5625vw;
    height: 1.5625vw;
    right: 1.25vw;
    background-size: 100%;
}

#mobile #report .report-test-wrap table td {
    height: 4.609375vw;
}

#mobile #report .report-test-wrap table td span {
    font-size: 1.09375vw;
    top: 0.234375vw;
    right: 0.3125vw;
}

#mobile #report .report-test-wrap table td.O::after {
    width: 2.1875vw;
    height: 2.1875vw;
    border-width: 0.46875vw;
}

#mobile #report .report-test-wrap table td.X {
    background-size: auto 60%;
}

#mobile #report .report-test-wrap table .sound div {
    font-size: 1.25vw;
    padding: 0 0.390625vw;
}

#mobile #report .report-homework th {
    padding-left: 1.25vw;
}

#mobile #report .report-record {
    border-radius: 0.625vw;
    padding: 0.9375vw 0;
    gap: 0.625vw;
}

#mobile #report .report-record p {
    font-size: 1.40625vw;
    margin-right: 1.25vw;
}

#mobile #report .report-record .btn {
    height: 2.8125vw;
    font-size: 1.25vw;
    min-width: 7.03125vw;
}

#mobile #report .report-record .btn img {
    margin-right: 0.46875vw;
    max-width: 1.25vw;
}

#mobile #report .report-record-bottom {
    gap: 0.625vw;
}

#mobile #report .report-record-bottom .table td {
    padding: 0.859375vw 1.25vw;
}

#mobile #report .chart-result {
    gap: 0.3125vw;
}

#mobile #report .chart-result p {
    width: 1.875vw;
    height: 1.875vw;
    border-width: 0.15625vw;
    font-size: 1.25vw;
}

#mobile #report .chart-wrap {
    background: none;
    height: calc(100% - 3.75vw);
}

#mobile #report .chart-wrap .chart {
    transform: scale(0.7);
    background: url(../img/web/graph_5.svg) no-repeat center;
    background-size: auto 120%;
}

#mobile #report .report-contents ~ .report-contents,
#mobile #report .report-final-wrap .report-contents {
    margin-top: 3.59375vw;
}

#mobile #report .report-contents + .report-sub,
#mobile #report .report-sub ~ .report-contents {
    margin-top: 3.125vw;
}

#mobile #report .report-homework {
    gap: 0.625vw;
    margin-top: 1.25vw;
    justify-content: space-between;
}

#mobile #report .report-homework ul {
    gap: 1.171875vw;
}

#mobile #report .report-homework ul li {
    font-size: 1.09375vw;
}

#mobile #report .new .report-homework ul {
    gap: 3.125vw;
}

#mobile #report .new .report-homework ul p {
    max-width: 6.25vw;
}

#mobile #report .report-homework ul li div {
    width: 6.25vw;
    height: 6.25vw;
    margin: 0 auto 0.78125vw;
    border-width: 0.234375vw;
}

#mobile #report .report-homework ul li div.essential::before {
    width: 2.1875vw;
    height: 2.1875vw;
    border-width: 0.15625vw;
    right: -0.3125vw;
    bottom: -0.3125vw;
    background-size: 65%;
}

#mobile #report .report-homework ul li div.complete::after {
    width: 8.125vw;
}

#mobile #report .report-homework-bottom {
    gap: 1.25vw;
    margin-top: 1.25vw;
}

#mobile #report .btn-report-homework {
    height: 2.8125vw;
    font-size: 1.25vw;
}

#mobile #report .btn-report-homework::after {
    width: 1.25vw;
    height: 1.25vw;
    background-size: 100%;
    margin-left: 0.625vw;
}

#mobile #report .homework-none {
    border-radius: 0.625vw;
    font-size: 1.40625vw;
    padding: 1.09375vw 0 1.25vw;
}

#mobile #report .table.row {
    width: 62.5vw;
}

#mobile #report .table.row td {
    padding: 0.703125vw 1.25vw;
}

#mobile #report .final-wrap .table td {
    padding: 1.015625vw 1.25vw;
}

#mobile #report .final-wrap .table .last td:first-child {
    font-size: 1.25vw;
}

#mobile #report .final-wrap .right {
    padding: 1.25vw 2.5vw 1.171875vw 1.5625vw;
}

#mobile #report .final-wrap .right.dia {
    padding: 0.78125vw 1.328125vw 0.78125vw 0.9375vw;
}

#mobile #report .final-wrap .right .percent {
    font-size: 1.09375vw;
    transform: translateX(-1.171875vw);
    width: calc(100% + 2.734375vw);
    margin-bottom: 0.46875vw;
}

#mobile #report .final-wrap .right .percent li {
    width: 2.734375vw;
}

#mobile #report .final-wrap .right .report-bar-wrap {
    background: repeating-linear-gradient(90deg, #e5e5e5, #e5e5e5 0.0625vw, #f9f9f9 0, #f9f9f9 4.40625vw);
    padding: 1.171875vw 0;
}

#mobile #report .final-wrap .right .report-bar-wrap li {
    height: 1.25vw;
}

#mobile #report .final-wrap .right .report-bar-wrap li + li {
    margin-top: 2.1875vw;
}

#mobile #report .explain {
    margin-top: 1.015625vw;
    font-size: 1.09375vw;
}

#mobile #report .explain li + li {
    margin-left: 3.125vw;
}

#mobile #report .explain div {
    width: 1.09375vw;
    height: 1.09375vw;
    border-radius: 0.15625vw;
    margin-right: 0.3125vw;
}

#mobile #report .explain div.round {
    border-width: 2px;
    border-radius: 50%;
}

#mobile #report .report-dia {
    transform: scale(0.7);
    background-position: center center;
    background: none;
    margin-bottom: -0.9375vw;
}

#mobile #report .report-dia::after {
    content: '';
    width: 117%;
    height: 121%;
    background: url(../img/web/graph_4.svg) no-repeat center center;
    position: absolute;
    left: -10%;
    top: -10%;
    z-index: -1;
}

#mobile #report .report-dia canvas {
    margin: 0;
}

#mobile #report .report-graph-wrap {
    padding: 1.5625vw 3.125vw;
}

#mobile #report .report-graph-wrap .percent,
#mobile #report .report-graph-wrap .chapter {
    font-size: 1.09375vw;
}

#mobile #report .report-graph-wrap .percent li,
#mobile #report .report-graph-wrap .chapter li {
    width: 2.734375vw;
}

#mobile #report .report-graph-wrap .percent {
    transform: translateY(-0.546875vw);
    gap: 2.03125vw;
    margin-right: 0.3125vw;
}

#mobile #report .report-graph-wrap .chapter {
    padding-left: 3.515625vw;
    transform: translateY(-0.625vw);
}

#mobile #report .graph-wrap {
    width: calc(100% - 3.125vw);
    height: 15.703125vw;
    background-size: 10.8984375vw 1.5625vw;
    background-position-x: -9.296875vw;
    padding: 0 1.640625vw;
}

#mobile #report .graph-wrap.less {
    background-size: 13.0078125vw 1.5625vw;
    background-position-x: 1.640625vw;
}

#mobile #report .graph-wrap.more {
    background-size: 9.3359375vw 1.5625vw;
    background-position-x: -7.65625vw;
}

#mobile #report .graph-wrap .dot li {
    width: 0.625vw;
    height: 0.625vw;
}

#mobile #report .report-none {
    font-size: 1.953125vw;
}

#mobile #report .graph-wrap.more .dot li:nth-child(1) {
    left: 2.6%;
}
#mobile #report .graph-wrap.more .dot li:nth-child(2) {
    left: 16.2%;
}
#mobile #report .graph-wrap.more .dot li:nth-child(3) {
    left: 29.8%;
}
#mobile #report .graph-wrap.more .dot li:nth-child(4) {
    left: 43.3%;
}
#mobile #report .graph-wrap.more .dot li:nth-child(5) {
    left: 57%;
}
#mobile #report .graph-wrap.more .dot li:nth-child(6) {
    left: 70.6%;
}
#mobile #report .graph-wrap.more .dot li:nth-child(7) {
    left: 84.2%;
}
#mobile #report .graph-wrap.more .dot li:nth-child(8) {
    left: 97.8%;
}

#mobile #report .graph-wrap.less .dot li:nth-child(3) {
    left: 40.4%;
}
#mobile #report .graph-wrap.less .dot li:nth-child(4) {
    left: 59.4%;
}
#mobile #report .graph-wrap.less .dot li:nth-child(5) {
    left: 78.3%;
}
#mobile #report .graph-wrap.less .dot li:nth-child(6) {
    left: 97.2%;
}

/* 모바일 가로모드 환경설정 */
#mobile #preference h3 {
    font-size: 2.8125vw;
}

#mobile #preference .preference-nav {
    gap: 2.34375vw;
}

#mobile #preference .preference-nav li {
    width: 5.46875vw;
    height: 2.109375vw;
    border-radius: 1.25vw;
    font-size: 1.25vw;
}

#mobile #preference .preference-nav li:not(:last-child)::after {
    width: 0.78125vw;
    height: 1.25vw;
    right: -1.171875vw;
}

#mobile #preference .preference-middle {
    width: calc(100% - 9.375vw);
    border-radius: 0.9375vw;
    box-shadow: 0 0.3125vw 1.25vw 0 rgba(61, 36, 22, 0.12);
    margin: 3.28125vw auto 1.25vw;
    padding: 1.5625vw;
}

#mobile #preference .preference-middle-top {
    gap: 1.40625vw;
    margin-bottom: 1.328125vw;
}

#mobile #preference .preference-middle-top span {
    font-size: 1.40625vw;
}

#mobile #preference .preference-middle-top p {
    font-size: 1.71875vw;
}

#mobile #preference .preference-contents {
    height: calc(100% - 3.046875vw);
    border-radius: 0.625vw;
    padding: 1.5625vw;
}

#mobile #preference .preference-btn {
    width: 3.75vw;
    height: 3.75vw;
    top: 16.25vw;
}

#mobile #preference .preference-prev {
    left: -4.6875vw;
}

#mobile #preference .preference-next {
    right: -4.6875vw;
}

#mobile #preference .preference-contents p {
    font-size: 1.40625vw;
    margin-bottom: 0.78125vw;
}

#mobile #preference .preference-contents p.align {
    margin-top: -0.234375vw;
}

#mobile #preference .preference-contents p.second {
    padding-left: 2.34375vw;
}

#mobile #preference .preference-contents p .num {
    width: 1.71875vw;
    height: 1.71875vw;
    font-size: 1.40625vw;
    margin-right: 0.625vw;
}

#mobile #preference .mini-btn {
    width: 4.53125vw;
    height: 2.1875vw;
    border-radius: 0.3125vw;
    font-size: 1.328125vw;
    margin: 0 0.3125vw 0 0.46875vw;
}

#mobile #preference .mini-arrow {
    width: 2.1875vw;
    height: 2.1875vw;
    margin: 0 0.3125vw 0 0.625vw;
}

#mobile #preference .mini-happy {
    width: 2.1875vw;
    height: 2.1875vw;
    margin-right: 0.3125vw;
}

#mobile #preference .mini-sad {
    width: 2.1875vw;
    height: 2.1875vw;
    margin: 0 0.3125vw 0 0.625vw;
}

#mobile #preference .mini-mic {
    width: 2.1875vw;
    height: 2.1875vw;
    border-radius: 0.3125vw;
    margin: 0 0.3125vw 0 0.625vw;
}

#mobile #preference .preference-group {
    gap: 3.90625vw;
    margin-top: 1.328125vw;
}

#mobile #preference .preference-group li {
    width: 13.28125vw;
    height: 20.625vw;
    background-size: 85%;
}

#mobile #preference .preference-group li button {
    width: 12.5vw;
    height: 3.75vw;
    border-radius: 3.28125vw;
    border-width: 0.15625vw;
    padding-left: 1.5625vw;
    font-size: 1.71875vw;
}

#mobile #preference .preference-group li button::before {
    width: 2.1875vw;
    height: 2.1875vw;
    left: 0.78125vw;
    background-size: 60%;
}

#mobile #preference .preference-sound-btn {
    width: calc(100% - 6.25vw);
    height: 4.6875vw;
    margin: 1.5625vw auto 0.625vw;
    border-radius: 0.625vw;
}

#mobile #preference .preference-sound-btn .btn-area {
    gap: 0.625vw;
}

#mobile #preference .preference-sound-btn.acc {
    gap: 2.34375vw;
}

#mobile #preference .preference-sound-btn.acc p {
    gap: 0.625vw;
    margin: 0;
}

#mobile #preference .preference-sound-btn.acc p:first-child::before,
#mobile #preference .preference-sound-btn.acc p:last-child::after {
    width: 1.5625vw;
    height: 1.5625vw;
}

#mobile #preference .preference-sound-btn.acc button {
    border-width: 0.15625vw;
    padding: 0 1.40625vw;
}

#mobile #preference .preference-sound-btn.acc button::before {
    width: 1.71875vw;
    height: 1.71875vw;
    margin-right: 0.625vw;
}

#mobile #preference .preference-sound-btn.model {
    gap: 3.125vw;
    margin-top: 2.03125vw;
}

#mobile #preference .preference-sound-btn.model .btn-area button {
    width: 3.125vw;
    height: 3.125vw;
    font-size: 1.25vw;
    border-radius: 0.3125vw;
}

#mobile #preference .preference-sound {
    width: calc(100% - 6.25vw);
    height: 4.6875vw;
    padding: 0.625vw;
    border-radius: 0.625vw;
}

#mobile #preference .preference-sound button {
    width: 3.4375vw;
    height: 3.4375vw;
    border-radius: 0.3125vw;
}

#mobile #preference .preference-sound p {
    font-size: 2.1875vw;
    margin: 0;
}

#mobile #preference .preference-sound p::after {
    width: 2.8125vw;
    height: 2.8125vw;
}

#mobile #preference .preference-bottom ul {
    width: calc(100% - 9.375vw);
    gap: 1.5625vw;
    border-radius: 0.9375vw;
    padding: 0.625vw 0;
}

#mobile #preference .preference-bottom li {
    font-size: 1.5625vw;
    gap: 0.78125vw;
}

#mobile #preference .preference-bottom input {
    max-width: 4.6875vw;
}

#mobile #preference .preference-bottom input:disabled {
    max-width: 15.625vw;
}

#mobile #preference #preference-frame {
    top: 14.828125vw;
    left: 18.90625vw;
    width: 71.5625vw;
    height: 19.84375vw;
}

/* 모바일 가로모드 단어 클리닉 */

#mobile #word .word-top .select-wrap {
    max-width: 15.625vw;
    margin-right: 0.3125vw;
}

#mobile #word .word-top .select-wrap:nth-child(2) {
    margin-right: 1.25vw;
}

#mobile #word .word-top > input[type="checkbox"] {
    margin-right: 3.125vw;
}

#mobile #word .word-total {
    font-size: 1.40625vw;
    letter-spacing: -0.05625vw;
    gap: 0.3125vw;
    margin-bottom: 1.25vw;
}

#mobile #word .word-total span {
    border-radius: 1.09375vw;
    padding: 0 1.09375vw;
    font-size: 1.25vw;
    height: 2.1875vw;
}

#mobile #word .word-bottom {
    height: calc(100% - 5.625vw);
    border-radius: 0.9375vw;
    padding: 1.5625vw;
    margin-top: 1.875vw;
    box-shadow: 0 0.3125vw 1.25vw 0 rgba(61, 36, 22, 0.12);
}

#mobile #word .table colgroup col:first-child {
    width: 4.6875vw;
}
#mobile #word .table colgroup col:nth-child(2) {
    width: 15.625vw;
}
#mobile #word .table colgroup col:nth-child(3) {
    width: 7.8125vw;
}
#mobile #word .table colgroup col:nth-child(4) {
    width: 19.6875vw;
}
#mobile #word .table colgroup col:nth-child(5) {
    width: 23.671875vw;
}

#mobile #word .word-table {
    height: calc(100% - 6.25vw);
}

#mobile #word .word-table td:nth-child(2) {
    padding: 0.78125vw;
}

#mobile #word .popup-word-top {
    width: 34.375vw;
    height: 3.98437vw;
    font-size: 1.5625vw;
    gap: 0.625vw;
}

#mobile #word .popup-word-top span {
    height: 2.109375vw;
    border-radius: 1.0546875vw;
    padding: 0 0.9375vw;
    font-size: 1.25vw;
}

#mobile #word .popup-word-middle {
    height: 9.6875vw;
    gap: 0.9375vw;
}

#mobile #word .popup-word-middle p {
    font-size: 1.71875vw;
}

#mobile #word .popup-word-middle span {
    font-size: 1.5625vw;
    letter-spacing: -0.046875vw;
}

/* 모바일 팝업 */
.smartphone .modal-common .modal-pop {
    width: 30vw;
}
.smartphone .modal-common >div {
    padding: 0 10px;
}
.smartphone .modal-common .modal-pop >div:nth-child(1) {
    aspect-ratio: 538/226;
    min-width: auto;
    min-height: auto;
    width: 100%;
}
.smartphone .modal-common .modal-pop >div:nth-child(1) p {
    font-size: 1.625vw;
}
.smartphone .modal-common .modal-pop >div:nth-child(2) {
    height: auto;
    aspect-ratio: 538/94;
}
.smartphone .modal-common .modal-pop >div:nth-child(2) button {
    font-size: 1.625vw;
}

/* 모바일 세로모드 */
@media screen and (max-width: 430px) {
    .web:not(.login) .wrap#mobile {
        width: 100vh;
    }

    #mobile .nav {
        gap: 0.625vh;
    }

    #mobile .nav li {
        font-size: 1.40625vh;
    }

    #mobile .close .nav li {
        background-size: 3.125vh 3.125vh;
    }

    #mobile .nav-btn {
        width: 1.875vh;
        height: 6.40625vh;
        right: -1.875vh;
        top: calc(50% - 3.203125vh);
        border-radius: 0 0.625vh 0.625vh 0;
    }

    #mobile .nav-btn::after {
        width: 0.703125vh;
        height: 0.9375vh;
    }

    #mobile .user-list .nav-user {
        width: 2.65625vh;
        border: 0.234375vh solid #8f7156;
        border-radius: 0.625vh;
        font-size: 1.171875vh;
        letter-spacing: -0.046875vh;
    }

    #mobile .user-list .nav-user span {
        font-size: 0;
    }

    #mobile .nav-link {
        bottom: 5.859375vh;
        font-size: 1.40625vh;
        letter-spacing: -0.05vh;
        gap: 0.78125vh;
    }


    #mobile .nav-link::after {
        width: 1.875vh;
        height: 1.875vh;
    }

    #mobile .close .nav-link {
        font-size: 0;
    }

    #mobile .nav-link img {
        max-width: 1.25vh;
    }

    #mobile .user-name {
        font-size: 1.5625vh;
        padding: 0.625vh;
    }

    #mobile .user-point {
        font-size: 1.25vh;
        padding: 0.625vh;
        margin-right: 2.34375vh;
    }

    #mobile .user-list {
        gap: 2.34375vh;
    }

    #mobile #web .header .user-list em.active {
        width: 0.625vh;
        height: 0.625vh;
    }

    #mobile .calendar-modal {
        border-radius: 0.625vh;
        box-shadow: 0.3125vh 0.3125vh 0.625vh 0 rgba(0, 0, 0, 0.12);
    }

    #mobile .calendar-modal::after {
        width: 1.953125vh;
        height: 1.953125vh;
        top: -0.546875vh;
        left: 3.125vh;
    }

    #mobile .calendar-modal .top {
        height: 2.34375vh;
        padding: 0 0.78125vh;
        border-radius: 0.625vh 0.625vh 0 0;
    }

    #mobile .calendar-modal .top p {
        font-size: 1.40625vh;
    }

    #mobile .calendar-modal .top button {
        width: 1.5625vh;
        height: 1.5625vh;
    }

    #mobile .calendar-modal .bottom {
        padding: 0.78125vh 1.171875vh;
        font-size: 1.40625vh;
        border-radius: 0 0 0.625vh 0.625vh;
    }

    #mobile .header .calendar-modal {
        top: 5.3125vh;
        right: 5.46875vh;
        width: 33.125vh;
    }

    #mobile .header .calendar-modal::after {
        left: 2.5vh;
    }

    #mobile .header .calendar-modal .bottom {
        padding: 0.78125vh;
    }

    #mobile .header .calendar-modal li {
        padding: 1.015625vh 1.25vh;
        border-radius: 0.625vh;
        font-size: 1.40625vh;
    }

    #mobile .header .calendar-modal li + li {
        margin-top: 0.625vh;
    }

    #mobile .header .calendar-modal li > span {
        width: 9.84375vh;
    }

    #mobile .header .calendar-modal img {
        max-width: 1.875vh;
        max-height: 2.1875vh;
    }

    #mobile .header .calendar-modal img.plum {
        top: -0.234375vh;
    }

    #mobile .header .calendar-modal li div p {
        margin-bottom: 1.25vh;
    }

    #mobile .header .calendar-modal li div span {
        margin-right: 1.5625vh;
        gap: 0.625vh;
    }

    #mobile .tab-list button {
        font-size: 1.5625vh;
        border-width: 0.15625vh;
    }

    #mobile .popup-top {
        height: 3.6vh;
        font-size: 1.40625vh;
        padding: 0 1.171875vh;
    }

    #mobile .popup-top button {
        width: 1.25vh;
    }

    #mobile .popup-middle {
        padding: 1.5625vh;
    }

    #mobile .popup-bottom {
        height: 5.15625vh;
        gap: 0.9375vh;
    }

    #mobile .calendar-top {
        margin-bottom: 0.9375vh;
    }

    #mobile .calendar-top .left {
        font-size: 1.40625vh;
    }

    #mobile .calendar-top .left span {
        height: 2.109375vh;
        padding: 0 0.9375vh;
        margin-left: 0.3125vh;
        font-size: 1.25vh;
    }

    #mobile .calendar-choice {
        font-size: 1.875vh;
    }

    #mobile .calendar-choice p {
        width: 12.5vh;
    }

    #mobile .calendar-button {
        width: 0.9375vh;
    }

    #mobile .calendar-top .right {
        font-size: 1.40625vh;
        letter-spacing: -0.05625vh;
    }

    #mobile .calendar-top .right span {
        height: 2.109375vh;
        padding: 0 0.9375vh;
        margin-left: 0.3125vh;
    }

    #mobile .contents-left + .contents-right + div .calendar-bottom col:nth-child(-n + 6) {
        width: calc(81.171875vh / 7);
    }

    #mobile .contents-left.close + .contents-right + div .calendar-bottom col:nth-child(-n + 6) {
        width: calc(84.296875vh / 7);
    }

    #mobile .calendar-bottom td {
        height: 6.71875vh;
    }

    #mobile .calendar-td .num {
        height: 1.796875vh;
        width: 1.796875vh;
        font-size: 1.09375vh;
    }

    #mobile .calendar-bottom td.today .calendar-td .num {
        width: 1.71875vh;
        height: 1.71875vh;
        top: -0.078125vh;
        right: -0.078125vh;
    }

    #mobile .table th {
        height: 2.65625vh;
        font-size: 1.25vh;
    }

    #mobile .table td {
        padding: 1.25vh;
        font-size: 1.40625vh;
    }

    #mobile .select-wrap::before,
    #mobile .select-wrap::after {
        width: 0.9375vh;
        height: 0.546875vh;
        right: 0.78125vh;
    }

    #mobile .select-top {
        height: 3.4375vh;
        border-radius: 0.3125vh;
        padding: 0 2.34375vh 0 0.78125vh;
        font-size: 1.40625vh;
    }

    #mobile .select-bottom {
        top: calc(100% + 0.3125vh);
        border-radius: 0.3125vh;
        box-shadow: 0.3125vh 0.3125vh 0.625vh 0 rgba(0, 0, 0, 0.12);
        padding: 0.625vw 0;
        font-size: 1.40625vh;
    }

    #mobile .select-bottom li {
        padding: 0.625vh 0.78125vh;
    }

    #mobile .select-wrap.big .select-top {
        height: 3.75vh;
        font-size: 1.5625vh;
    }

    #mobile .select-check .select-bottom li {
        padding: 0.78125vh;
        gap: 0.78125vh;
    }

    #mobile .select-wrap.big .select-bottom {
        font-size: 1.5625vh;
        max-height: 40vh;
    }

    #mobile .contents-wrap-whole {
        border-radius: 0.9375vh;
        padding: 1.5625vh;
        box-shadow: 0 0.3125vh 1.25vh 0 rgba(61, 36, 22, 0.12);
    }

    /* 공지사항 팝업 세로모드 모바일 */

    #mobile .popup-notice {
        border-radius: 0.625vh;
        box-shadow: 0 1.015625vh 2.109375vh -0.390625vh rgba(50,50,93,.25), 0 0.625vh 1.25vh -0.625vh rgba(0,0,0,.3);
        overflow: hidden;
    }

    #mobile .popup-notice-header {
        height: 3.125vh;
        border-top-right-radius: 0.625vh;
        border-top-left-radius: 0.625vh;
        padding-left: 0.9375vh;
    }

    #mobile .popup-notice-header p {
        font-size: 1.40625vh;
        letter-spacing: -.04em;
        line-height: 2.03125vh;
        width: calc(100% - 3.125vh);
    }

    #mobile .popup-notice-header button {
        width: 1.5625vh;
        height: 1.5625vh;
    }

    #mobile .popup-notice-inner {
        width: 35.15625vh;
        max-height: 50.78125vh;
        padding: 0.78125vh;
    }

    #mobile .popup-notice-inner p {
        font-size: 1.40625vh;
    }

    #mobile .popup-notice-footer {
        height: 3.90625vh;
        border-bottom-right-radius: 0.625vh;
        border-bottom-left-radius: 0.625vh;
        padding: 1.5625vh;
    }

    #mobile .popup-notice-footer div {
        gap: 0.3125vh;
        font-size: 1.40625vh;
    }

    #mobile .popup-notice-footer button {
        font-size: 1.171875vh;
        letter-spacing: -.04em;
        line-height: 1.71875vh;
        height: 2.34375vh;
        border-radius: 0.3125vh;
        padding: 0 1.5625vh;
        border: 0.078125vh solid #ccc;
    }

    /* 모바일 세로모드 메인 */
    #mobile #main .swiper {
        min-height: 26.5625vh;
        left: -0.546875vh;
    }

    #mobile #main .classroom-slide-wrap {
        max-width: 76.5625vh;
    }

    #mobile #main .classroom-slide-wrap::after {
        width: 0.625vh;
        height: 21.484375vh;
    }

    #mobile #main .swiper-slide {
        width: 17.1875vh;
        margin-right: 1.953125vh;
    }

    #mobile #main .classroom-today {
        font-size: 2.1875vh;
        margin: 3.125vh 0;
    }

    #mobile #main .classroom-item .top {
        max-width: 16.53vh;
    }

    #mobile #main .classroom-item .bottom {
        font-size: 1.71vh;
        height: 4.45vh;
        max-width: 16.640625vh;
    }

    #mobile #main .swiper-pagination {
        width: 28.125vh;
        margin-top: 1.8vh;
    }

    #mobile #main .classroom-top {
        margin: 3.125vh 0;
        max-width: 16.640625vh;
    }

    #mobile #main .classroom-top-item {
        height: 3.8vh;
        font-size: 1.5625vh;
        gap: 1.25vh;
    }

    #mobile #main .classroom-top-item span {
        font-size: 1.40625vh;
    }

    #mobile #main .classroom-top-item p {
        min-height: 1.5625vh;
    }

    #mobile #main .popup-btn-wrap {
        gap: 5.46875vh;
        width: 25.15vh;
    }

    #mobile #main .popup-btn {
        font-size: 1.5625vh;
    }

    #mobile #main .popup-btn img {
        width: 6.25vh;
        margin-bottom: 0.625vh;
    }

    #mobile #main .classroom-pop div {
        width: 9.765625vh;
        margin-right: 1.25vh;
    }

    #mobile #main .classroom-pop ul {
        gap: 0.625vh;
    }

    #mobile #main .classroom-pop ul li {
        height: 3.75vh;
        font-size: 1.40625vh;
        width: 29.296875vh;
    }

    #mobile #main .classroom-pop ul li p {
        width: 9.6875vh;
    }

    #mobile #main .main-none {
        height: 20.3125vh;
    }

    #mobile #main .btn-change {
        width: 3.75vh;
        height: 3.75vh;
        border-radius: 0.9375vh;
        border-width: 0.15625vh;
        right: 4.84375vh;
    }

    #mobile #main .classroom-list-wrap {
        gap: 6.25vh;
    }

    #mobile #main .classroom-list {
        border-radius: 0.9375vh;
        font-size: 1.40625vh;
        box-shadow: 0 0.3125vh 1.25vh 0 rgba(51, 44, 39, 0.12);
    }

    #mobile #main .classroom-list.left {
        width: 20vh;
    }

    #mobile #main .classroom-list.left::after {
        width: 3.125vh;
        height: 3.125vh;
        border-radius: 1.5625vh;
        right: -4.6875vh;
    }

    #mobile #main .classroom-list.right {
        width: 48.125vh;
    }

    #mobile #main .classroom-list-top {
        height: 3.75vh;
        border-width: 0.15625vh;
        border-radius: 0.9375vh 0.9375vh 0 0;
        font-size: 1.5625vh;
    }

    #mobile #main .classroom-list-bottom {
        border-width: 0.078125vh;
        border-top: 0;
        border-radius: 0 0 0.9375vh 0.9375vh;
        padding: 0.625vh;
        height: 27.8125vh;
    }

    #mobile #main .classroom-list.none .classroom-list-top {
        border-width: 0.078125vh;
    }

    #mobile #main .classroom-list-none {
        font-size: 1.5625vh;
    }

    #mobile #main .classroom-list-none img {
        width: 1.875vh;
        margin-bottom: 0.78125vh;
    }

    #mobile #main .classroom-list-contents::-webkit-scrollbar {
        width: 0.46875vh;
    }

    #mobile #main .classroom-list-contents::-webkit-scrollbar-track {
        margin: 0 0 0.625vh;
    }

    #mobile #main .right .classroom-list-contents::-webkit-scrollbar-track {
        margin: 0 0 0.625vh;
    }

    #mobile #main .left .classroom-list-contents::-webkit-scrollbar-track {
        margin: 0;
    }

    #mobile #main .classroom-list-contents.scroll {
        padding-right: 0.390625vh;
    }

    #mobile #main .classroom-list-contents .classroom-list-none-wrap {
        padding-bottom: 0.625vh;
    }

    #mobile #main .classroom-list li + li {
        margin-top: 0.3125vh;
    }

    #mobile #main .classroom-list li button {
        height: 3.515625vh;
        border-radius: 0.625vh;
        border-width: 0.15625vh;
        font-size: 1.71875vh;
    }

    #mobile #main .classroom-list.right .classroom-list-bottom {
        padding-bottom: 0;
    }

    #mobile #main .classroom-list.right .classroom-list-contents {
        padding-right: 0.625vh;
        padding-bottom: 0.625vh;
    }

    #mobile #main .classroom-list.right li button {
        height: 3.75vh;
        border-width: 0.078125vh;
    }

    /* 모바일 세로모드 포인트 */

    #mobile #point .tab-contents {
        height: calc(100% - 5.625vh);
        padding: 1.5625vh;
        margin-top: 1.875vh;
    }

    #mobile #point .calendar-wrap > .bottom {
        max-height: 28.28125vh;
    }

    #mobile #point .calendar-bottom td {
        height: 6.25vh;
    }

    #mobile #point .calendar-point {
        gap: 1.5625vh;
    }

    #mobile #point .calendar-point div {
        width: 2.8125vh;
        height: 2.8125vh;
    }

    #mobile #point .calendar-point span {
        width: 1.875vh;
        height: 1.875vh;
        border-width: 0.15625vh;
        font-size: 1.09375vh;
        bottom: -0.859375vh;
        right: -0.625vh;
    }

    #mobile #point .point-header {
        margin-bottom: 1.25vh;
    }

    #mobile #point .point-header-bottom ul {
        gap: 1.25vh;
        margin-bottom: 1.25vh;
    }

    #mobile #point .point-header-bottom li {
        min-width: 26.25vh;
        height: 3.75vh;
        font-size: 1.40625vh;
        gap: 1.25vh;
    }

    #mobile #point .point-header-bottom li:last-child {
        gap: 2.34375vh;
    }

    #mobile #point .point-header-bottom li p {
        gap: 0.625vh;
    }

    #mobile #point .point-header-bottom li img {
        max-width: 1.875vh;
        max-height: 2.1875vh;
    }

    #mobile #point .point-header-bottom li .plum img {
        top: -0.234375vh;
    }

    #mobile #point .point-header ~ .point-modal-bottom {
        height: calc(100% - 9.6875vh);
    }

    #mobile #point .point-header ~ .point-modal-bottom .table-bottom {
        height: calc(100% - 2.96875vh);
    }

    #mobile #point .point-modal-top {
        font-size: 1.875vh;
    }

    #mobile #point .point-modal-top p {
        width: 16.328125vh;
    }

    #mobile #point .point-button {
        width: 0.9375vh;
        height: 1.5625vh;
    }

    #mobile #point .point-modal-info {
        margin-top: 1.5625vh;
        height: 3.125vh;
        font-size: 1.40625vh;
        gap: 3.125vh;
    }

    #mobile #point .point-modal-info p {
        gap: 0.78125vh;
    }

    #mobile #point .point-modal-info .plum img {
        max-height: 2.5vh;
    }

    #mobile #point .point-modal-info .coin img {
        max-height: 2.34375vh;
    }

    #mobile #point .point-modal-info p img {
        margin-right: 0.078125vh;
    }

    #mobile #point .point-modal-tb {
        width: 62.5vh;
        max-height: 18.984375vh;
    }

    #mobile #point .popup .point-modal-table {
        width: 62.5vh;
    }

    #mobile #point .point-modal-table th {
        height: 2.8125vh;
    }

    #mobile #point .point-modal-table td:nth-last-child(3),
    #mobile #point .point-modal-table td:nth-last-child(4),
    #mobile #point .point-modal-table td:last-child,
    #mobile #point .point-modal-table .text-center {
        padding: 0.625vh;
    }

    #mobile #point .point-modal-table td:nth-last-child(3) {
        padding: 0.625vh 0;
    }

    #mobile #point .point-modal-point {
        gap: 0.625vh;
        font-size: 1.25vh;
    }

    #mobile #point .point-modal-point::before {
        width: 2.34375vh;
    }

    #mobile #point .point-modal-point.C::before {
        height: 2.34375vh;
    }

    #mobile #point .point-modal-point.P::before {
        height: 2.5vh;
    }

    #mobile #point .point-modal-table col:nth-child(1) {
        width: calc(62.5vh * 0.1525);
    }
    #mobile #point .point-modal-table col:nth-child(2) {
        width: calc(62.5vh * 0.223);
    }
    #mobile #point .point-modal-table col:nth-child(3) {
        width: calc(62.5vh * 0.0625);
    }
    #mobile #point .point-modal-table col:nth-child(4) {
        width: calc(62.5vh * 0.092);
    }
    #mobile #point .point-modal-table col:nth-child(5) {
        width: calc(62.5vh * 0.31125);
    }

    #mobile #point .point-top {
        gap: 1.25vh;
        margin: 1.5625vh 0 1.25vh;
    }

    #mobile #point .point-top li {
        height: 3.75vh;
        border-radius: 0.625vh;
        font-size: 1.40625vh;
    }

    #mobile #point .point-top li:not(.point) span {
        margin-left: 1.25vh;
    }

    #mobile #point .point-top li div {
        gap: 0.3125vh;
    }

    #mobile #point .point-top li div + div {
        margin-left: 1.875vh;
    }

    #mobile #point .point-top li img {
        max-width: 1.875vh;
        max-height: 2.1875vh;
    }

    #mobile #point .point-top li.point div:first-child img {
        top: -0.15625vh;
    }

    #mobile #point .point-month {
        border-radius: 0.9375vh;
        padding: 1.5625vh;
    }

    #mobile #point .point-month td:nth-last-child(3) {
        padding: 0 0.625vh;
    }

    #mobile #point .racing-wrap .side {
        width: 3.125vh;
    }

    #mobile #point .racing-wrap .side p {
        font-size: 2.1875vh;
        gap: 0.625vh;
        letter-spacing: 0.21875vh;
    }


    #mobile #point .racing-wrap .side p img {
        max-width: 2.34375vh;
    }

    #mobile #point .racing-area {
        height: 26.796875vh;
        border: 0.078125vh solid #ddd;
    }

    #mobile #point .racing-area li {
        border: 0.234375vh solid #ede8e0;
        height: 3.59375vh;
    }

    #mobile #point .racing-area li + li {
        margin-top: 0.3125vh;
    }

    #mobile #point .racing-car {
        width: 3.125vh;
        gap: 0.625vh;
    }

    #mobile #point .racing-car p {
        font-size: 1.25vh;
        left: calc(-100% - 0.9375vh);
        font-size: 1.40625vh;
    }

    #mobile #point .racing-car p.user {
        font-size: 1.25vh;
        height: 2.109375vh;
        padding: 0 0.9375vh;
        border-radius: 1.0546875vh;
        left: calc(-100% - 2.5vh);
    }

    #mobile #point .racing-car .car {
        width: 3.125vh;
        height: 3.125vh;
    }

    #mobile #point .racing-car .car::after {
        width: 1.875vh;
        height: 1.875vh;
        left: calc(100% + 0.625vh);
    }

    #mobile #point .point-pop {
        width: 20.3125vh;
        height: 5.78125vh;
        left: -1.25vh;
        top: -7.18745vh;
        border-radius: 0.625vh;
        box-shadow: 0.3125vh 0.3125vh 0.625vh 0 rgba(0, 0, 0, 0.12);
    }

    #mobile #point .racing-area li:nth-child(-n + 2) .point-pop {
        top: 4.53125vh;
    }

    #mobile #point .point-pop::after {
        width: 1.953125vh;
        height: 1.953125vh;
        border-radius: 0.390625vh;
        top: 4.53125vh;
        left: 1.875vh;
    }

    #mobile #point .racing-area li:nth-child(-n + 2) .point-pop::after {
        top: -0.703125vh;
    }

    #mobile #point .point-pop .top {
        height: 2.5vh;
        padding: 0.15625vh 0.78125vh 0;
        font-size: 1.40625vh;
        letter-spacing: -0.056245vh;
        border-radius: 0.625vh 0.625vh 0 0;
    }

    #mobile #point .point-pop .top button {
        width: 1.171875vh;
        height: 1.171875vh;
    }

    #mobile #point .point-pop .bottom {
        border: 0.15625vh solid #f58b45;
        height: 3.28125vh;
        border-radius: 0.15625vh 0.15625vh 0.625vh 0.625vh;
        font-size: 1.40625vh;
        padding: 0 1.25vh;
    }


    /* 모바일 세로모드 알림장 */

    #mobile #notice .btn-message {
        right: 3.125vh;
        top: 3.125vh;
    }

    #mobile #notice .btn-message img {
        margin-right: 0.625vh;
        width: 1.875vh;
    }

    #mobile #notice .tab-contents {
        height: calc(100% - 5.625vh);
        padding: 1.5625vh;
        margin-top: 1.875vh;
    }

    #mobile #notice .table-wrap {
        height: calc(100% - 2.8125vh);
        margin-top: 1.25vh;
    }

    #mobile #notice .table td {
        font-size: 1.40625vh;
        border-bottom: 0.078125vh solid #ddd;
    }

    #mobile #notice .table td:last-child {
        border-right: 0.078125vh solid #ddd;
    }

    #mobile #notice .table td::before {
        width: 0.078125vh;
    }

    #mobile #notice .table td .title {
        font-size: 1.5625vh;
        margin-bottom: 0.625vh;
        max-width: 41.953125vh;
    }

    #mobile #notice .table td .title span,
    #mobile #notice .table td .text {
        max-width: 41.953125vh;
    }

    #mobile #notice .table .file .title::before {
        width: 1.5625vh;
        height: 1.5625vh;
        right: 1.171875vh;
    }

    #mobile #notice .table .unread .new .title::after {
        width: 1.40625vh;
        height: 1.40625vh;
        border-radius: 0.46875vh;
        margin-left: 0.46875vh;
        font-size: 1.09375vh;
    }

    #mobile #notice .notice-send {
        width: 31.40625vh;
    }

    #mobile #notice .notice-send > li + li {
        margin-top: 1.40625vh;
    }

    #mobile #notice .notice-send > li p {
        font-size: 1.25vh;
        margin-bottom: 0.546875vh;
    }

    #mobile #notice .notice-send textarea {
        height: 13.515625vh;
        border-radius: 0.3125vh;
        padding: 0.78125vh;
        font-size: 1.40625vh;
    }

    #mobile #notice .notice-read {
        width: 62.5vh;
    }

    #mobile #notice .notice-read th {
        height: 3.359375vh;
        font-size: 1.25vh;
    }

    #mobile #notice .notice-read td  {
        font-size: 1.40625vh;
        padding: 0 1.25vh;
    }

    #mobile #notice .notice-read .notice-contents div {
        height: 18.28125vh;
        padding: 0.78125vh 0;
    }

    #mobile #notice .table-wrap col:nth-child(1) {
        width: calc(81.25vh * 0.057);
    }
    #mobile #notice .table-wrap col:nth-child(2) {
        width: calc(81.25vh * 0.5961);
    }
    #mobile #notice .table-wrap col:nth-child(3) {
        width: calc(81.25vh * 0.1538);
    }

    #mobile #notice .notice-btn-wrap {
        padding: 0.390625vh 0;
    }

    #mobile #point .point-month {
        padding: 1.5625vh;
        border-radius: 0.9375vh;
    }

    #mobile #point .point-month col:nth-child(1) {
        width: calc(81.171875vh * 0.1173);
    }
    #mobile #point .point-month col:nth-child(2) {
        width: calc(81.171875vh * 0.1807);
    }
    #mobile #point .point-month col:nth-child(3) {
        width: calc(81.171875vh * 0.048);
    }
    #mobile #point .point-month col:nth-child(4) {
        width: calc(81.171875vh * 0.0826);
    }
    #mobile #point .point-month col:nth-child(5) {
        width: calc(81.171875vh * 0.45);
    }

    /* 모바일 세로모드 출석 확인 */
    #mobile #attendance .calendar-wrap > .bottom {
        max-height: 33.90625vh;
    }

    #mobile #attendance .calendar-modal {
        width: 20.3125vh;
        left: 0.625vh;
        top: calc(100% + 1.09375vh);
    }

    #attendance tr:nth-child(n+5) .calendar-modal {
        top: auto;
        bottom: calc(100% + 1.09375vh);
    }

    #attendance tr:nth-child(n+5) .calendar-modal::after {
        top: auto;
        bottom: -0.546875vh;
    }

    /* 모바일 세로모드 교재 등록 */
    #mobile #registration .btn-check {
        right: 3.125vh;
        top: 3.125vh;
    }

    #mobile #registration .btn-check img {
        margin-right: 0.625vh;
        width: 1.5625vh;
    }

    #mobile #registration .regi-wrap {
        padding-top: 2.34375vh;
    }

    #mobile #registration .regi-wrap h2 {
        font-size: 2.5vh;
        margin-bottom: 1.5625vh;
    }

    #mobile #registration .regi-wrap > p {
        font-size: 1.25vh;
    }

    #mobile #registration .regi-list {
        margin: 2.109375vh auto 0;
        max-width: 46.25vh;
        height: 31.328125vh;
        padding: 5.390625vh 6.71875vh 0;
    }

    #mobile #registration .regi-list li + li {
        margin-top: 1.5625vh;
    }

    #mobile #registration .regi-list li + li:last-child {
        margin-top: 3.125vh;
    }

    #mobile #registration .regi-list li + li:last-child .btn {
        min-width: 14.53125vh;
    }

    #mobile #registration .regi-list li > p {
        font-size: 1.25vh;
        margin-bottom: 0.46875vh;
    }

    #mobile #registration .regi-list li div {
        gap: 0.3125vh;
        font-size: 1.40625vh;
    }

    #mobile #registration .regi-list li input[type="number"] {
        max-width: 6.25vh;
    }

    #mobile #registration .regi-list li input:disabled {
        max-width: 21.25vh;
        margin-right: 0.3125vh;
    }

    #mobile #registration .regi-list li div p {
        font-size: 1.40625vh;
    }

    #mobile #registration .camera-btn .btn-s {
        min-width: 3.4375vh;
        margin-left: 0.3125vh;
    }

    #mobile #registration .select-wrap {
        max-width: 12.5vh;
        margin: 0 0 1.25vh auto;
    }

    #mobile #registration .table-wrap {
        width: calc(100vw - 30px);
    }

    #mobile #registration .table-bottom {
        max-height: 17.1875vh;
    }

    #mobile #registration .table-bottom .table {
        width: 100%;
    }

    #mobile #registration .table td {
        height: 3.4375vh;
        padding: 0 1.171875vh;
    }

    #mobile #registration .pagination {
        gap: 1.25vh;
        margin-top: 1.5625vh;
    }

    #mobile #registration .pagination > div {
        gap: 0.3125vh;
    }

    #mobile #registration .pagination button {
        width: 2.5vh;
        height: 2.5vh;
        font-size: 1.25vh;
        border-radius: 0.3125vh;
    }

    /* 모바일 세로모드 성적 확인 */
    #mobile #report .report-top {
        gap: 1.25vh;
    }

    #mobile #report .report-top .left {
        width: 21.875vh;
    }

    #mobile #report .report-top .right {
        height: 5vh;
        border-radius: 0.3125vh;
        width: calc(100% - 23.125vh);
    }

    #mobile #report .report-slide-btn {
        width: 1.875vh;
        top: -0.078125vh;
        border-radius: 0.3125vh 0 0 0.3125vh;
    }

    #mobile #report .report-top .chapter-list {
        gap: 0.9375vh;
        padding: 0 0.9375vh;
        left: 1.796875vh;
        max-width: calc(100% - 3.515625vh);
    }

    #mobile #report .report-top .chapter-list button {
        height: 3.75vh;
        border-radius: 1.875vh;
        min-width: 7.03125vh;
        padding: 0 0.78125vh;
        border-width: 0.15625vh;
        font-size: 1.5625vh;
    }

    #mobile #report .report-bottom {
        height: calc(100% - 6.875vh);
        border-radius: 0.9375vh;
        padding: 0.625vh 0.625vh 0.625vh 3.125vh;
        margin-top: 1.875vh;
        box-shadow: 0 0.3125vh 1.25vh 0 rgba(61, 36, 22, 0.12);
    }

    #mobile #report .report-scroll {
        padding: 2.5vh 2.03125vh 2.5vh 0;
    }

    #mobile #report .report-title {
        gap: 1.09375vh;
        font-size: 2.8125vh;
        margin-bottom: 2.109375vh;
    }

    #mobile #report .report-title span {
        height: 2.109375vh;
        padding: 0 0.9375vh;
        border-radius: 1.25vh;
        font-size: 1.25vh;
    }

    #mobile #report .report-sub {
        font-size: 2.1875vh;
        padding-bottom: 0.15625vh;
        border-width: 0.15625vh;
        margin-bottom: 1.40625vh;
    }

    #mobile #report .report-info {
        gap: 0.625vh;
    }

    #mobile #report .report-info.final > li {
        width: calc(50% - 0.3125vh);
    }

    #mobile #report .report-info.final .bottom {
        font-size: 1.40625vh;
    }

    #mobile #report .report-info.final .bottom > span {
        font-size: 1.25vh;
        margin-left: 0.46875vh;
    }

    #mobile #report .report-info.final .bottom p {
        margin-top: 1.25vh;
        font-size: 1.25vh;
    }

    #mobile #report .report-info.final .bottom p span {
        margin-right: 0.625vh;
    }

    #mobile #report .report-info.final .bottom p span::before {
        width: 1.5625vh;
        height: 1.5625vh;
        margin-right: 0.3125vh;
    }

    #mobile #report .report-info .top,
    #mobile #report .report-sub-title {
        font-size: 1.40625vh;
        margin-bottom: 0.46875vh;
    }

    #mobile #report .report-info .top::before,
    #mobile #report .report-sub-title::before {
        width: 1.5625vh;
        height: 1.5625vh;
        margin-right: 0.46875vh;
    }

    #mobile #report .report-info .bottom {
        height: calc(100% - 2.03125vh);
        border-radius: 0.625vh;
        padding: 0.9375vh 1.25vh;
        font-size: 1.25vh;
    }

    #mobile #report .report-info .bottom.time {
        font-size: 1.40625vh;
    }

    #mobile #report .report-info .bottom.progress li + li {
        margin-top: 1.5625vh;
    }

    #mobile #report .report-info .bottom.progress li p:first-child {
        min-width: 7.1875vh;
    }

    #mobile #report .report-info .bottom.progress li p:last-child {
        min-width: calc(100% - 18.90625vh);
    }

    #mobile #report .report-info .bottom.progress li .box-wrap {
        max-width: 11.71875vh;
        height: 1.25vh;
        border-radius: 0.3125vh;
        border-width: 0.15625vh;
    }

    #mobile #report .report-info .bottom .box-wrap {
        max-width: 11.71875vh;
        height: 1.25vh;
        border-radius: 0.3125vh;
        border-width: 0.15625vh;
    }

    #mobile #report .report-info .bottom .box-wrap .box {
        height: 1.25vh;
        border-radius: 0.3125vh;
        top: -0.15625vh;
        left: -0.15625vh;
        max-width: calc(100% + 0.3125vh);
    }

    #mobile #report .report-info .bottom.point div + div {
        margin-top: 0.625vh;
    }

    #mobile #report .report-info .bottom.point ul {
        min-width: 13.046875vh;
    }

    #mobile #report .report-info .bottom.point ul::after {
        width: 0.078125vh;
        height: calc(100% + 0.625vh);
        right: -1.25vh;
        top: -0.234375vh;
    }

    #mobile #report .report-info .bottom.point li {
        gap: 0.390625vh;
        min-width: 6.484375vh;
    }

    #mobile #report .report-info .bottom.point li:last-child {
        padding-left: 0.625vh;
    }

    #mobile #report .report-info .bottom.point li span:last-child {
        margin-left: 0.390625vh;
    }

    #mobile #report .report-info .bottom.point img {
        max-width: 1.796875vh;
        max-height: 2.1875vh;
    }

    #mobile #report .report-tob-table {
        margin-top: 1.25vh;
    }

    #mobile #report .report-test-wrap {
        gap: 0.625vh;
    }

    #mobile #report .report-test-wrap > .time {
        height: 7.421875vh;
        width: 12.5vh;
        border-radius: 0.625vh;
        font-size: 1.40625vh;
    }

    #mobile #report .report-test-wrap > .time span {
        font-size: 1.25vh;
        margin-top: 0.625vh;
    }

    #mobile #report .report-test-wrap .report-table:nth-child(2) {
        width: calc(100% - 13.125vh);
    }

    #mobile #report .report-test-wrap.new .report-table:nth-child(2) {
        width: calc(75% - 0.625vh);
    }

    #mobile #report .report-bottom h4 {
        margin: 1.25vh 0;
        font-size: 1.5625vh;
    }

    #mobile #report .report-bottom .caution {
        font-size: 1.25vh;
        gap: 0.46875vh;
    }

    #mobile #report .report-bottom .caution::before {
        width: 1.5625vh;
        height: 1.5625vh;
    }

    #mobile #report .report-test-wrap table th {
        height: 2.8125vh;
        padding-left: 1.25vh;
        font-size: 1.25vh;
    }

    #mobile #report .report-test-wrap table th::before {
        height: 0.15625vh;
    }

    #mobile #report .report-test-wrap table th button {
        width: 1.5625vh;
        height: 1.5625vh;
        right: 1.25vh;
    }

    #mobile #report .report-test-wrap table td {
        height: 4.609375vh;
    }

    #mobile #report .report-test-wrap table td span {
        font-size: 1.09375vh;
        top: 0.234375vh;
        right: 0.3125vh;
    }

    #mobile #report .report-test-wrap table td.O::after {
        width: 2.1875vh;
        height: 2.1875vh;
        border-width: 0.46875vh;
    }

    #mobile #report .report-test-wrap table .sound div {
        font-size: 1.25vh;
        padding: 0 0.390625vh;
    }

    #mobile #report .report-homework th {
        padding-left: 1.25vh;
    }

    #mobile #report .report-record {
        border-radius: 0.625vh;
        padding: 0.9375vh 0;
        gap: 0.625vh;
    }

    #mobile #report .report-record p {
        font-size: 1.40625vh;
        margin-right: 1.25vh;
    }

    #mobile #report .report-record .btn {
        height: 2.8125vh;
        font-size: 1.25vh;
        min-width: 7.03125vh;
    }

    #mobile #report .report-record .btn img {
        margin-right: 0.46875vh;
        max-width: 1.25vh;
    }

    #mobile #report .report-record-bottom {
        gap: 0.625vh;
    }

    #mobile #report .report-record-bottom .table td {
        padding: 0.859375vh 1.25vh;
    }

    #mobile #report .chart-result {
        gap: 0.3125vh;
    }

    #mobile #report .chart-result p {
        width: 1.875vh;
        height: 1.875vh;
        border-width: 0.15625vh;
        font-size: 1.25vh;
    }

    #mobile #report .chart-wrap {
        height: calc(100% - 3.75vh);
    }

    #mobile #report .report-contents ~ .report-contents,
    #mobile #report .report-final-wrap .report-contents {
        margin-top: 3.59375vh;
    }

    #mobile #report .report-contents + .report-sub,
    #mobile #report .report-sub ~ .report-contents {
        margin-top: 3.125vh;
    }

    #mobile #report .report-homework {
        gap: 0.625vh;
        margin-top: 1.25vh;
    }

    #mobile #report .report-homework ul {
        gap: 1.171875vh;
    }

    #mobile #report .report-homework ul li {
        font-size: 1.09375vh;
    }

    #mobile #report .new .report-homework ul {
        gap: 3.125vh;
    }

    #mobile #report .new .report-homework ul p {
        max-width: 6.25vh;
    }

    #mobile #report .report-homework ul li div {
        width: 6.25vh;
        height: 6.25vh;
        margin: 0 auto 0.78125vh;
        border-width: 0.234375vh;
    }

    #mobile #report .report-homework ul li div.essential::before {
        width: 2.1875vh;
        height: 2.1875vh;
        border-width: 0.15625vh;
        right: -0.3125vh;
        bottom: -0.3125vh;
    }

    #mobile #report .report-homework ul li div.complete::after {
        width: 8.125vh;
    }

    #mobile #report .report-homework-bottom {
        gap: 1.25vh;
        margin-top: 1.25vh;
    }

    #mobile #report .btn-report-homework {
        height: 2.8125vh;
        font-size: 1.25vh;
    }

    #mobile #report .btn-report-homework::after {
        width: 1.25vh;
        height: 1.25vh;
        margin-left: 0.625vh;
    }

    #mobile #report .homework-none {
        border-radius: 0.625vh;
        font-size: 1.40625vh;
        padding: 1.09375vh 0 1.25vh;
    }

    #mobile #report .table.row {
        width: 62.5vh;
    }

    #mobile #report .table.row td {
        padding: 0.703125vh 1.25vh;
    }

    #mobile #report .final-wrap .table td {
        padding: 1.015625vh 1.25vh;
    }

    #mobile #report .final-wrap .table .last td:first-child {
        font-size: 1.25vh;
    }

    #mobile #report .final-wrap .right {
        padding: 1.25vh 2.5vh 1.171875vh 1.5625vh;
    }

    #mobile #report .final-wrap .right.dia {
        padding: 0.78125vh 1.328125vh 0.78125vh 0.9375vh;
    }

    #mobile #report .final-wrap .right .percent {
        font-size: 1.09375vh;
        transform: translateX(-1.171875vh);
        width: calc(100% + 2.734375vh);
        margin-bottom: 0.46875vh;
    }

    #mobile #report .final-wrap .right .percent li {
        width: 2.734375vh;
    }

    #mobile #report .final-wrap .right .report-bar-wrap {
        background: repeating-linear-gradient(90deg, #e5e5e5, #e5e5e5 0.0625vh, #f9f9f9 0, #f9f9f9 4.40625vh);
        padding: 1.171875vh 0;
    }

    #mobile #report .final-wrap .right .report-bar-wrap li {
        height: 1.25vh;
    }

    #mobile #report .final-wrap .right .report-bar-wrap li + li {
        margin-top: 2.1875vh;
    }

    #mobile #report .explain {
        margin-top: 1.015625vh;
        font-size: 1.09375vh;
    }

    #mobile #report .explain li + li {
        margin-left: 3.125vh;
    }

    #mobile #report .explain div {
        width: 1.09375vh;
        height: 1.09375vh;
        border-radius: 0.15625vh;
        margin-right: 0.3125vh;
    }

    #mobile #report .report-dia {
        margin-bottom: -0.9375vh;
    }

    #mobile #report .report-graph-wrap {
        padding: 1.5625vh 3.125vh;
    }

    #mobile #report .report-graph-wrap .percent,
    #mobile #report .report-graph-wrap .chapter {
        font-size: 1.09375vh;
    }

    #mobile #report .report-graph-wrap .percent li,
    #mobile #report .report-graph-wrap .chapter li {
        width: 2.734375vh;
    }

    #mobile #report .report-graph-wrap .percent {
        transform: translateY(-0.546875vh);
        gap: 2.03125vh;
        margin-right: 0.3125vh;
    }

    #mobile #report .report-graph-wrap .chapter {
        padding-left: 3.515625vh;
        transform: translateY(-0.625vh);
    }

    #mobile #report .graph-wrap {
        width: calc(100% - 3.125vh);
        height: 15.703125vh;
        background-size: 10.8984375vh 1.5625vh;
        background-position-x: -9.296875vh;
        padding: 0 1.640625vh;
    }

    #mobile #report .graph-wrap.less {
        background-size: 13.0078125vh 1.5625vh;
        background-position-x: 1.640625vh;
    }

    #mobile #report .graph-wrap.more {
        background-size: 9.3359375vh 1.5625vh;
        background-position-x: -7.65625vh;
    }

    #mobile #report .graph-wrap .dot li {
        width: 0.625vh;
        height: 0.625vh;
    }

    #mobile #report .report-none {
        font-size: 1.953125vh;
    }


    /* 모바일 세로모드 환경설정 */
    #mobile #preference h3 {
        font-size: 2.8125vh;
    }

    #mobile #preference .preference-nav {
        gap: 2.34375vh;
    }

    #mobile #preference .preference-nav li {
        width: 5.46875vh;
        height: 2.109375vh;
        border-radius: 1.25vh;
        font-size: 1.25vh;
    }

    #mobile #preference .preference-nav li:not(:last-child)::after {
        width: 0.78125vh;
        height: 1.25vh;
        right: -1.171875vh;
    }

    #mobile #preference .preference-middle {
        width: calc(100% - 9.375vh);
        border-radius: 0.9375vh;
        box-shadow: 0 0.3125vh 1.25vh 0 rgba(61, 36, 22, 0.12);
        margin: 3.28125vh auto 1.25vh;
        padding: 1.5625vh;
    }

    #mobile #preference .preference-middle-top {
        gap: 1.40625vh;
        margin-bottom: 1.328125vh;
    }

    #mobile #preference .preference-middle-top span {
        font-size: 1.40625vh;
    }

    #mobile #preference .preference-middle-top p {
        font-size: 1.71875vh;
    }

    #mobile #preference .preference-contents {
        height: calc(100% - 3.046875vh);
        border-radius: 0.625vh;
        padding: 1.5625vh;
    }

    #mobile #preference .preference-btn {
        width: 3.75vh;
        height: 3.75vh;
        top: 16.25vh;
    }

    #mobile #preference .preference-prev {
        left: -4.6875vh;
    }

    #mobile #preference .preference-next {
        right: -4.6875vh;
    }

    #mobile #preference .preference-contents p {
        font-size: 1.40625vh;
        margin-bottom: 0.78125vh;
    }

    #mobile #preference .preference-contents p.align {
        margin-top: -0.234375vh;
    }

    #mobile #preference .preference-contents p.second {
        padding-left: 2.34375vh;
    }

    #mobile #preference .preference-contents p .num {
        width: 1.71875vh;
        height: 1.71875vh;
        font-size: 1.40625vh;
        margin-right: 0.625vh;
    }

    #mobile #preference .mini-btn {
        width: 4.53125vh;
        height: 2.1875vh;
        border-radius: 0.3125vh;
        font-size: 1.328125vh;
        margin: 0 0.3125vh 0 0.46875vh;
    }

    #mobile #preference .mini-arrow {
        width: 2.1875vh;
        height: 2.1875vh;
        margin: 0 0.3125vh 0 0.625vh;
    }

    #mobile #preference .mini-happy {
        width: 2.1875vh;
        height: 2.1875vh;
        margin-right: 0.3125vh;
    }

    #mobile #preference .mini-sad {
        width: 2.1875vh;
        height: 2.1875vh;
        margin: 0 0.3125vh 0 0.625vh;
    }

    #mobile #preference .mini-mic {
        width: 2.1875vh;
        height: 2.1875vh;
        border-radius: 0.3125vh;
        margin: 0 0.3125vh 0 0.625vh;
    }

    #mobile #preference .preference-group {
        gap: 3.90625vh;
        margin-top: 1.328125vh;
    }

    #mobile #preference .preference-group li {
        width: 13.28125vh;
        height: 20.625vh;
    }

    #mobile #preference .preference-group li button {
        width: 12.5vh;
        height: 3.75vh;
        border-radius: 3.28125vh;
        border-width: 0.15625vh;
        padding-left: 1.5625vh;
        font-size: 1.71875vh;
    }

    #mobile #preference .preference-group li button::before {
        width: 2.1875vh;
        height: 2.1875vh;
        left: 0.78125vh;
    }

    #mobile #preference .preference-sound-btn {
        width: calc(100% - 6.25vh);
        height: 4.6875vh;
        margin: 1.5625vh auto 0.625vh;
        border-radius: 0.625vh;
    }

    #mobile #preference .preference-sound-btn .btn-area {
        gap: 0.625vh;
    }

    #mobile #preference .preference-sound-btn.acc {
        gap: 2.34375vh;
    }

    #mobile #preference .preference-sound-btn.acc p {
        gap: 0.625vh;
    }

    #mobile #preference .preference-sound-btn.acc p:first-child::before,
    #mobile #preference .preference-sound-btn.acc p:last-child::after {
        width: 1.5625vh;
        height: 1.5625vh;
    }

    #mobile #preference .preference-sound-btn.acc button {
        border-width: 0.15625vh;
        padding: 0 1.40625vh;
    }

    #mobile #preference .preference-sound-btn.acc button::before {
        width: 1.71875vh;
        height: 1.71875vh;
        margin-right: 0.625vh;
    }

    #mobile #preference .preference-sound-btn.model {
        gap: 3.125vh;
        margin-top: 2.03125vh;
    }

    #mobile #preference .preference-sound-btn.model .btn-area button {
        width: 3.125vh;
        height: 3.125vh;
        font-size: 1.25vh;
        border-radius: 0.3125vh;
    }

    #mobile #preference .preference-sound {
        width: calc(100% - 6.25vh);
        height: 4.6875vh;
        padding: 0.625vh;
        border-radius: 0.625vh;
    }

    #mobile #preference .preference-sound button {
        width: 3.4375vh;
        height: 3.4375vh;
        border-radius: 0.3125vh;
    }

    #mobile #preference .preference-sound p {
        font-size: 2.1875vh;
        margin: 0;
    }

    #mobile #preference .preference-sound p::after {
        width: 2.8125vh;
        height: 2.8125vh;
    }

    #mobile #preference .preference-bottom ul {
        width: calc(100% - 9.375vh);
        gap: 1.5625vh;
        border-radius: 0.9375vh;
        padding: 0.625vh 0;
    }

    #mobile #preference .preference-bottom li {
        font-size: 1.5625vh;
        gap: 0.78125vh;
    }

    #mobile #preference .preference-bottom input {
        max-width: 4.6875vh;
    }

    #mobile #preference .preference-bottom input:disabled {
        max-width: 15.625vh;
    }

    #mobile #preference #preference-frame {
        top: 14.828125vh;
        left: 18.90625vh;
        width: 71.5625vh;
        height: 19.84375vh;
    }

    .smartphone .modal.preference-modal img {
        max-width: 2vh;
    }

    .smartphone #preference .wave-wrap {
        left: 10.15625vh;
        top: 13.7vh;
        width: 70.3125vh;
        height: 20.3125vh;
    }


    /* 모바일 세로모드 단어 클리닉 */

    #mobile #word .word-top .select-wrap {
        max-width: 15.625vh;
        margin-right: 0.3125vh;
    }

    #mobile #word .word-top .select-wrap:nth-child(2) {
        margin-right: 1.25vh;
    }

    #mobile #word .word-top > input[type="checkbox"] {
        margin-right: 3.125vh;
    }

    #mobile #word .word-total {
        font-size: 1.40625vh;
        letter-spacing: -0.05625vh;
        gap: 0.3125vh;
        margin-bottom: 1.25vh;
    }

    #mobile #word .word-total span {
        border-radius: 1.09375vh;
        padding: 0 1.09375vh;
        font-size: 1.25vh;
        height: 2.1875vh;
    }

    #mobile #word .word-bottom {
        height: calc(100% - 5.625vh);
        border-radius: 0.9375vh;
        padding: 1.5625vh;
        margin-top: 1.875vh;
        box-shadow: 0 0.3125vh 1.25vh 0 rgba(61, 36, 22, 0.12);
    }

    #mobile #word .table colgroup col:first-child {
        width: 4.6875vh;
    }
    #mobile #word .table colgroup col:nth-child(2) {
        width: 15.625vh;
    }
    #mobile #word .table colgroup col:nth-child(3) {
        width: 7.8125vh;
    }
    #mobile #word .table colgroup col:nth-child(4) {
        width: 19.6875vh;
    }
    #mobile #word .table colgroup col:nth-child(5) {
        width: 23.671875vh;
    }

    #mobile #word .word-table {
        height: calc(100% - 6.25vh);
    }

    #mobile #word .word-table td:nth-child(2) {
        padding: 0.78125vh;
    }

    #mobile #word .popup-word-top {
        width: 34.375vh;
        height: 3.98437vh;
        font-size: 1.5625vh;
        gap: 0.625vh;
    }

    #mobile #word .popup-word-top span {
        height: 2.109375vh;
        border-radius: 1.0546875vh;
        padding: 0 0.9375vh;
        font-size: 1.25vh;
    }

    #mobile #word .popup-word-middle {
        height: 9.6875vh;
        gap: 0.9375vh;
    }

    #mobile #word .popup-word-middle p {
        font-size: 1.71875vh;
    }

    #mobile #word .popup-word-middle span {
        font-size: 1.5625vh;
        letter-spacing: -0.046875vh;
    }

    /* 모바일 팝업 */
    .smartphone .modal-common .modal-pop {
        width: 100%;
    }
    .smartphone .modal-common .modal-pop >div:nth-child(1) p {
        font-size: 2.625vh;
    }
    .smartphone .modal-common .modal-pop >div:nth-child(2) button {
        font-size: 2.625vh;
    }
}

.smartphone .deem-full {
    z-index: 1;
}

/*알림장 reset 지우기*/
.notice-contents u {
    text-decoration: underline !important;
}

.notice-contents s {
    text-decoration: line-through !important;
}

.notice-contents ul li {
    margin-left: 22px !important;
    list-style-type: disc !important;
}

.notice-contents ol li {
    margin-left: 20px !important;
    list-style-type: decimal !important;
}

.notice-contents i {
    font-style: italic !important;
}

.notice-contents strong {
    font-weight: bold !important;
}

.notice-contents blockquote {
    margin-top: 10px !important;
    border-left: 5px solid #ccc !important;
    font-style: italic !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow: hidden !important;
    padding-left: 1.5em !important;
    padding-right: 1.5em !important;
}

.notice-contents a {
    color: rgb(0, 0, 238) !important;
    font-style: italic !important;
    text-decoration: underline;
}

.notice-contents h2 {
    font-weight: bold;
    font-size: 25.5px !important;
}

.notice-contents h3 {
    font-weight: bold;
    font-size: 19.89px !important;
}

.notice-contents h4 {
    font-weight: bold;
    font-size: 17px !important;
}

.notice-contents td {
    padding: 5px 10px !important;
    border: 1px solid #ccc;
}

.notice-contents img {
    max-width: 100% !important;
    height: auto;
}

.notice-contents figure.table {
    display: inline-block;
}

.notice-contents table {
    border: 1px double #b3b3b3 !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    height: 100% !important;
    width: 100% !important;
}

.notice-contents table td,
.notice-contents table th {
    border: 1px solid #bfbfbf !important;
    min-width: 2em !important;
    padding: 0.4em !important;
    overflow-wrap: break-word !important;
    position: relative !important;
}

.notice-contents figure {
    margin: 0;
}

/* 로그인 */
body.login {
    background: #f7f3f0;
}

.login .wrap#web,
.login .wrap#mobile {
    background-image: none;
}

#login {
    display: flex;
    align-items: center;
    flex-direction: column;
}

#login input[type="text"],
#login input[type="password"] {
	appearance: none;
	-webkit-appearance: none;

	width: 100%;
	border: 1px solid #ccc;
    border-radius: 4px;
    background: #fff;
    height: 40px;
    padding-left: 10px;
    font-size: 18px;
    letter-spacing: -0.72px;
    color: #444;
	font-family: 'Pretendard', sans-serif;
}

#login input[type="text"]::placeholder,
#login input[type="password"]::placeholder {
	color: #ccc;
}

#login input[type="text"]:focus,
#login input[type="password"]:focus {
	outline: none;
	border: 1px solid #ea7851;
}


#login input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;

	width: 20px;
	height: 20px;
	background: #fff;
	border: 2px solid #aaa;
	border-radius: 4px;
	cursor: pointer;
}

#login input[type="checkbox"]:checked {
	background: url(../img/login/check.svg) no-repeat center #ea7851;
	border-color: #ea7851;
}

#login input[type="checkbox"] + label {
    margin-left: -3px;
    margin-top: 2px;
    color: #222;
}

.login:not(.smartphone) #login .login-top,
.login:not(.smartphone) #login .login-box {
    transform: scale(0.9);
    transform-origin: center top;
}

#login .login-top {
    width: 100%;
    height: 80px;
    border-bottom: 1px solid #efe8e4;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 28px;
    padding-right: 39px;
}

#login .login-top img {
    max-width: 145px;
}

#login .login-box {
	width: 500px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid #e4e4e4;
    padding: 0 60px;
}

#login .login-title {
	font-size: 24px;
    color: #222;
    text-align: center;
    line-height: 1;
    margin: 63px 0;
    letter-spacing: -0.96px;
}

#login .login-contents {
	width: 100%;
	margin: 63px auto 0;
}

#login .login-radio {
	display: flex;
	justify-content: center;
	gap: 40px;
	font-size: 18px;
	letter-spacing: -0.72px;
	color: #444;
	font-weight: 500;
	margin-bottom: 40px;
}

#login .login-input {
	position: relative;
}

#login .login-input+.login-input {
	margin: 20px 0 10px;
}

#login .login-input button {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
}

#login .login-check {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 18px;
	letter-spacing: -0.72px;
	color: #666;
	margin-bottom: 20px;
	margin-bottom: 40px;
}

#login .login-btn {
	width: 100%;
	height: 40px;
	border-radius: 4px;
	background: #ea7851;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 18px;
	letter-spacing: -0.72px;
	font-weight: 500;
	margin-bottom: 10px;
	max-width: 300px;
	margin: 0 auto 10px;
}

#login .login-find {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 40px;
	border-radius: 4px;
	border: 1px solid #ea7851;
	margin: 0 auto 17px;
	max-width: 300px;
}

#login .login-find a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50%;
	height: 100%;
	font-size: 18px;
	letter-spacing: -0.68px;
	color: #ea7851;
	position: relative;
    text-decoration: none;
}


#login .login-bottom p {
    font-size: 24px;
    text-align: center;
    letter-spacing: -0.96px;
    line-height: 1.5;
    margin: 17px 0;
    font-weight: 500;
}

#login .login-bottom a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 220px;
	height: 50px;
	border-radius: 4px;
	border: 1px solid #e4e4e4;
	margin: 0 auto 53px;
}

#login .popup-wrap {
	width: 10000vw;
	height: 10000vh;
	background: rgba(0, 0, 0, 0.72);
	position: fixed;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
}

#login .popup {
	max-width: 400px;
	max-height: 250px;
	width: 100%;
	height: 100%;
	background: #fff;
	border-radius: 8px;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	overflow: hidden;
	animation: scaleUp 0.5s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
}

#login .popup-top {
	height: 40px;
	background: #5268e0;
	position: relative;
    border-bottom: 0;
}

#login .popup-top button {
	width: 40px;
	height: 40px;
	background: url(../img/login/pop_close.svg) no-repeat center #5268e0;
	position: absolute;
	right: 0;
	top: 0;
}

#login .popup-middle {
	height: calc(100% - 102px);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: 18px;
	color: #444;
    line-height: 1.1;
}

#login .popup-bottom {
	background: #f6f6f6;
	border-top: 1px solid #ddd;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	height: 62px;
}

#login .popup-bottom button {
	width: 100px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 4px;
	border: 1px solid #aaa;
	background: #eee;
	font-size: 17px;
	color: #444;
	font-weight: 500;
	letter-spacing: -0.48px;
}

#login .popup-bottom button:last-child {
	background: #3951cc;
	border-color: #3951cc;
	color: #fff;
}

#login .video-box {
	background: #fff;
	display: none;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
	left: 0;
	top: 0;
	position: fixed;
}

#login .video-box::after {
    content: '';
    width: 10000vw;
    height: 10000vh;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 0;
    box-sizing: border-box;
    background: #fff;
}

#login .video-box video {
	width: 90%;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
    z-index: 1;
}

#login .video-box::before {
    content: '';
	width: 95%;
    height: 95%;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
    border-width: 5vw 5vw;
    border-style: solid;
    border-color: #fff;
    z-index: 2;
    box-sizing: border-box;
}

@media screen and (max-width: 768px) {
    .login .wrap#mobile {
        width: 100%;
        height: 100%;
    }

	#mobile #login {
		overflow-y: auto;
        height: 100%;
        display: block;
	}

    #mobile #login::-webkit-scrollbar {
        width: 10px;
        background: transparent;
    }

    #mobile #login::-webkit-scrollbar-thumb {
        background: #aaaaaa;
        border-radius: 5px;
    }

    #mobile #login::-webkit-scrollbar-track {
        margin: 10px 0;
        background: #eeeeee;
        border-radius: 5px;
    }

	#mobile #login .login-top {
		width: 100%;
        height: 80px;
        border-bottom: 1px solid #efe8e4;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 40px;
        padding-right: 21px;
	}

	#mobile #login .login-top img {
		width: 100%;
	}

    #mobile #login .login-box {
        width: calc(100% - 60px);
        border-radius: 16px;
        background: #fff;
        border: 1px solid #e4e4e4;
        padding: 0 26px;
        margin: 0 auto;
    }

	#mobile #login .login-contents {
		margin-top: 40px;
		padding: 0 10px;
	}

	#mobile #login .login-title {
		font-size: 24px;
        color: #222;
        text-align: center;
        line-height: 1;
        margin: 42px 0;
        letter-spacing: 0;
	}

	#mobile #login .login-radio {
		margin-bottom: 20px;
	}

	#mobile #login .login-input+.login-input {
		margin-bottom: 11px;
	}

    #mobile #login input[type="checkbox"] + label {
        margin-left: -2px;
        margin-top: 0px;
    }

	#mobile #login .login-check {
		margin-bottom: 37px;
	}

	#mobile #login .login-btn {
		margin-bottom: 10px;
        font-weight: 400;
	}

	#mobile #login .login-find {
		flex-direction: column;
		height: auto;
		gap: 10px;
		border: 0;
	}

	#mobile #login .login-find a {
		width: 100%;
		height: 40px;
		border-radius: 4px;
		border: 1px solid #ea7851;
        letter-spacing: -0.72px;
	}

	#mobile #login .login-bottom p {
		text-align: center;
        font-size: 18px;
        letter-spacing: -0.72px;
        line-height: 1.5;
        margin: 37px 0 54px;
        font-weight: 500;
    }

    #mobile #login .login-bottom a {
        display: flex;
        width: 100%;
        max-width: 180px;
        height: 40px;
        border: 1px solid #e4e4e4;
        align-items: center;
        justify-content: center;
        border-radius: 4px;
        margin-bottom: 64px;
    }

	#mobile #login .login-bottom a img {
		max-width: 100%;
	}

	#mobile #login .popup {
		width: calc(100vw - 60px);
		max-width: 330px;
		max-height: 204px;
	}

	#mobile #login .popup-middle {
		height: calc(100% - 96px);
	}

	#mobile #login .popup-bottom {
		height: 56px;
	}

	#mobile #login .popup-bottom button {
		font-size: 16px;
	}
}

@keyframes scaleUp {
	0% {
		transform: translate(-50%, -30%);
		opacity: 0;
	}

	100% {
		transform: translate(-50%, -50%);
		opacity: 1;
	}
}
