@view-transition {
/*  navigation: auto;*/
}

:root {
    --tw-cursor-w: 0.08em;

    --cbtn-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", "Noto Sans JP", Arial, sans-serif;
    --cbtn-radius: 9999px;
    --cbtn-py: 0.625rem;
    --cbtn-px: 1rem;
    --cbtn-gap: 0.5rem;
    --cbtn-fz: 0.95rem;
    --cbtn-fw: 600;
    --cbtn-shadow: 0 2px 8px rgba(0,0,0,.08);

    --c-primary: #1363df;
    --c-primary-600: #0f56c3;
    --c-on-primary: #ffffff;

    --c-surface: #ffffff;
    --c-text: #0f172a;
    --c-muted: #64748b;
    --c-border: #e5e7eb;

    --c-ghost-hover: rgba(15, 23, 42, .06);
    --focus-ring: 0 0 0 3px rgba(19, 99, 223, .25);

}

::placeholder{
    color: #CCC;
}

::-webkit-scrollbar {
  background: transparent;
  width: 5px;
  height: 5px;
}

::-webkit-scrollbar-thumb {
  background-color: #CCC;
  border-radius: 3px;
}

@media screen and (max-width: 480px) {

::-webkit-scrollbar{
    display: none;
}

} 

.no-spin::-webkit-inner-spin-button,
.no-spin::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
    -moz-appearance:textfield;
}


.div-sonar,
.btn.btn-sonar {
  position: relative;                 /* 擬似要素の基準 */
  --sonar-size: 10px;                 /* ドットの基準サイズ */
  --sonar-offset: 10px;                /* 左上からのオフセット */
  --sonar-duration: 2.2s;             /* 周期（秒） */
  --sonar-color: #fa5959;             /* ボタン色に追随。固定色にしたい場合は #fff 等に */
  overflow: visible;                  /* 波紋がはみ出しても見えるように */
}

.div-sonar::before,
.btn.btn-sonar::before {
  content: "";
  position: absolute;
  top: var(--sonar-offset);
  left: var(--sonar-offset);
  width: var(--sonar-size);
  height: var(--sonar-size);
  border-radius: 50%;
  background: var(--sonar-color);     /* 中心のドット */
  opacity: 0.9;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(1);
  box-shadow: 0 0 0 0 var(--sonar-color); /* 波紋の開始点 */
  animation: sonar-pulse var(--sonar-duration) ease-out infinite;
  z-index: 1;                         /* ボタン内テキストより上に */
}

.div-sonar::before{
    top: 0px;
    left: 0px;
}

@keyframes sonar-pulse {
  0% {
    opacity: 0.95;
    transform: translate(-50%, -50%) scale(1);
    box-shadow: 0 0 0 0 color-mix(in oklab, var(--sonar-color) 40%, transparent);
  }
  60% {
    opacity: 0.35;
    transform: translate(-50%, -50%) scale(1.8); /* 波紋の広がり */
    box-shadow: 0 0 0 10px color-mix(in oklab, var(--sonar-color) 25%, transparent);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(2.6);
    box-shadow: 0 0 0 16px color-mix(in oklab, var(--sonar-color) 0%, transparent);
  }
}

/* 動きを抑制したい人への配慮 */
@media (prefers-reduced-motion: reduce) {
  .btn.btn-sonar::before {
    animation: none;
    opacity: 1;
  }
}

.mb-6{
    margin-bottom: 4.5rem !important;
}

html,body{
    height: calc( 100% - 48px );  
}

body{
    width: 480px;
    max-width: 100%;
    margin: 0 auto;
    margin-top: 46px;
}

body.full-width{
    width: 100%;
}

body.no-scroll {
    overflow: hidden;
}

body[data-current = "login"]{
    margin-top: 20px;
}

progress{
    max-width: 100%;
}

input.hidden{
    display: none;
}

.tw-cursor { display:inline-block; width:var(--tw-cursor-w); height:1em; vertical-align:-0.15em; background:currentColor; animation: twBlink 1s steps(1,end) infinite; }
@keyframes twBlink { 50% { opacity:0; } }

.assignment-list-item hr{
    margin: .5rem 0;
    opacity: .1;    
}

.inline-block-form{
    width: 75%;
    display: inline-block;
    margin-right: 0.25rem;
}

.hidden-wrap{
    display: none !important; 
}

.tdn{
    text-decoration: none;
}

.tdu{
    text-decoration: underline;
}

.pin{
    pointer-events: none;
}

.font-noto{
    font-family: "Noto Sans JP", serif;
}

.font-roboto-mono{
    font-family: "Roboto Mono", monospace;
}

.c-inherit{
    color: inherit;
}

.justify-items-center{
    justify-items: center;
}

.f-10px{
    font-size: 0.625rem;
}

.f-12px{
    font-size: 0.75rem;
}

.f-14px{
    font-size: 0.875rem;
}

.ffcc00i{
    background: #FFCC00 !important;
    color: #333;
}

.other-page-link{
    font-size: .75rem;
    color: inherit;
    text-decoration: none;
    padding: 1px 10px 1px 15px;
    background: #EBF4FF;
    border-radius: 20px;
    color: #333;
}

.other-page-link.icon:before{
    left: 4px;
}

.sonar:after{
    animation-duration: 2.5s;
}

[data-concept = "study"],
[data-concept = "gym"],
[data-concept = "training"]{
    background: linear-gradient(109.6deg, rgb(20, 30, 48) 11.2%, rgb(36, 59, 85) 91.1%);
    background-attachment: fixed;
    background-size: cover;
    color: #F5F5F5;
}

[data-concept = "study"][data-is-admin = "1"],
[data-concept = "gym"][data-is-admin = "1"],
[data-concept = "training"][data-is-admin = "1"],
[data-concept = "training"][data-current = "login"],
[data-concept = "training"][data-current = "reward-edit"]{
    background: #FFFAF4;
    color: #333;
}

[data-concept = "training"][data-current = "sp"]{
    background: #fff1e1;
    color: #333;    
}

[data-concept = "training"][data-current = "help-log"]{
    background: #f3eee8;
}

[data-concept = "training"][data-current = "help-log"] .container{
    color: #351818;
}

body[data-current = "sp"] .container{
    background: #FFFAF4;
    box-shadow: 0 0 7px -2px rgba(0, 0, 0, .2);
}

body[data-current = "sp"] hr{
    color: #fff1e1;
    opacity: 1;
}

.container:not(.no-hidden){
    overflow-y: scroll;
    overflow-x: hidden;
}

.reset-overflow,
.study-text .container{
    overflow: initial;
}

.form-label{
    margin-bottom: .125rem;
}
/*
.row{
    --bs-gutter-x: 0;
}*/

.btn-original{
    background-color: #ffffff;
    border-color: #e5e5e5;
}

.btn-original:hover{
    background-color: #eaeaea;
    border-color: #e5e5e5;
}


.ellipsis {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.disnone{
    display: none !important;
}

.disabled, .strictly-disabled{
    pointer-events: none;
}

.btn.disabled, .btn:disabled, fieldset:disabled .btn,
.strictly-disabled{
    opacity: .3;
}


[data-concept = "gym"] .btn-primary{
    color: #000;
    background: #FFCC00;
    border: 1px solid #FFCC00;
}

.font-small{
    font-size: 66%;
}

.font-zen-kurenaido{
    font-family: "Zen Kurenaido", sans-serif;
}

.font-zen-old-mincho-regular {
  font-family: "Zen Old Mincho", serif;
  font-weight: 400;
  font-style: normal;
}

.font-zen-old-mincho-bold {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-style: normal;
}

.setting-h5{
    font-size: .875rem;
    font-weight: bold;
}

.disnone{
    display: none;
}

.box-common{
    width: 100%;
    background: #F9F9F9;
    border-radius: 15px;
    color: #333;
    padding: 1rem 1.25rem;
}

.box-common .main{
    font-weight: bold;
    font-size: 1rem;
    line-height: 1.25;
}

.box-common .sub{
    font-size: 10px;
    color: #555;
    line-height: 1;
    margin-bottom: 0.25rem; 
}

.challenge-count{
    color: #F5F5F5;
    background: #FF4040;
    border-radius: 2px;
    line-height: 1.1;
    padding: 3px 5px;
    display: inline-block;
    font-size: 0.75rem;
}

.tippy-box[data-theme~='original-1'] {
    background: radial-gradient(circle at 10% 20%, rgb(238, 56, 56) 0%, rgba(206, 21, 0, 0.92) 90.1%);
}

.tippy-box[data-theme~='original-1'] .tippy-arrow{
    color: #dc2a24;
}

.tippy-box[data-theme~='original-2'] {
    background: radial-gradient(circle at 10% 20%, rgb(246, 187, 187) 0%, rgb(249, 219, 217) 90%);
    color: #343445;
}

.tippy-box[data-theme~='original-2'] .tippy-arrow{
    color: #fad0c5;
}

.btn-darkred{

}

/**
 * header
 */
.header-wrap{
    background-color: #F8F6EC;
    min-height: 40px;
    transition: background .2s;
    box-shadow: 0 1px 10px -5px rgb(0 0 0 / 13%);
}

.stage .header-wrap{
    background: #ffbbbb !important;
}

.header-wrap.timeover{
    background: #F00 !important;
    position: relative;
}

[data-concept = "study"] .header-wrap,
[data-concept = "training"] .header-wrap {
    background-color: #ffffff;
    backdrop-filter: blur(5px);
    box-shadow: 0 2px 10px -5px rgba(0, 0, 0, 0.2);
}

.study-text .header-wrap{
/*    background: #444;*/
}

[data-concept = "gym"] .header-wrap{
    color: #FFF;
    background: rgba(0,0,0,0.5);
      -webkit-box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); /* 影 */
      box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); /* 影 */
      -webkit-backdrop-filter: blur(5px); /* ぼかし */
      backdrop-filter: blur(5px); /* ぼかし */
      border: 1px solid rgb(20 20 20 / 25%);
}

[data-is-small-test = "1"] .header-wrap{
    background: #fd5555 !important;
}

[data-is-small-test = "1"] .header-wrap:before{
    content: "小テスト";
    font-size: 12px;
    color: #FFF;
}

.header-wrap{
    padding: .5rem .75rem;
}

.header-page-title{

}

.header-logo a{
    position: relative;
    display: inline-block;
}

body.stage{
    background: #ffbbbb !important;
}

.stage .header-logo a:after{
    content: "テスト環境";
    font-size: 0.625rem;
    background: #ff4c4c;
    padding: 0 .5rem;
    color: #FFF;
    border-radius: 20px;
    position: absolute;
    right: -40px;
    bottom: -5px;
}

/*.header-logo a:after {
    content: "UI調整中";
    position: absolute;
    right: -45px;
    bottom: 0px;
    font-size: 10px;
    color: #333;
    background: #C00;
    padding: 2px 3px 1px;
    display: block;
    color: #FFF;
    border-radius: 9px;
    line-height: 1;
}*/

body[data-current="study-text"] .question-page-none,
body[data-current="study-text"] .header-link .header-a,
body[data-current="study-text"] .header-user .logout-check{
    display: none !important;
}



/**
 * breadcrumb
 */
.breadcrumb-wrap{
    padding: .75rem 0rem 0rem;
    margin-bottom: .5rem !important;
}

.breadcrumb-wrap .breadcrumb{
    margin-bottom: .5rem;
}

.breadcrumb *{
    font-size: 12px;
    line-height: 1;
    font-weight: bold;
}

.breadcrumb .prev{
    font-weight: normal;
}

.breadcrumb .prev:after{
    content: ">";
    display: inline-block;
    margin: 0 .125rem;
}

.breadcrumb-wrap .current{
    font-weight: bold;
    display: block;
}

.breadcrumb-wrap a{
    color: inherit; 
}

.breadcrumb-wrap.no-link a{
    text-decoration: none;
    pointer-events: none;
}

/**
 * nav
 */
.nav-wrap{
    background: #222;
    width: 480px;
    max-width: 100vw;
    position: fixed;
    bottom: 0;
    left: calc(50% - 240px);
    margin-right: 0;
    margin-left: 0;
    z-index: 999;
}

@media all and (max-width: 480px){

    .nav-wrap{
        left: 0;
    }

}

.nav-a {
    padding-top: 35px;
    padding-bottom: 5px;
    font-size: 10px;
    color: #FFCC00;
    display: block;
    text-decoration: none;
    letter-spacing: .1em;
    line-height: 1;
    background-size: 25px 25px;
}

.nav-a[data-name="study-data"]{
    background-image: url(../img/nav/study_data_y.png);
    background-position: top 5px center;
    background-repeat: no-repeat;
}

.nav-a[data-name="study-data"]:hover,
.nav-a.current[data-name="study-data"]{
    background-image: url(../img/nav/study_data.png);
}

.nav-a[data-name="assignment-list"]{
    background-image: url(../img/nav/assignment_y.png);
    background-position: top 5px center;
    background-repeat: no-repeat;
}

.nav-a[data-name="assignment-list"]:hover,
.nav-a.current[data-name="assignment-list"]{
    background-image: url(../img/nav/assignment.png);
}

.nav-a[data-name="dashboard"]{
    background-image: url(../img/nav/dashboard_y.png);
    background-position: top 5px center;
    background-repeat: no-repeat;
}

.nav-a[data-name="dashboard"]:hover,
.nav-a.current[data-name="dashboard"]{
    background-image: url(../img/nav/dashboard.png);
}

.nav-a[data-name="question-regist"]{
    background-image: url(../img/nav/assignment_regist_y.png);
    background-position: top 5px center;
    background-repeat: no-repeat;
}

.nav-a[data-name="question-regist"]:hover,
.nav-a.current[data-name="question-regist"]{
    background-image: url(../img/nav/assignment_regist.png);
}

.nav-a[data-name="team-edit"]{
    background-image: url(../img/nav/team_y.png);
    background-position: top 5px center;
    background-repeat: no-repeat;
}

.nav-a[data-name="team-edit"]:hover,
.nav-a.current[data-name="team-edit"]{
    background-image: url(../img/nav/team.png);
}

.nav-a[data-name="setting"]{
    background-image: url(../img/nav/setting_y.png);
    background-position: top 5px center;
    background-repeat: no-repeat;
}

.nav-a[data-name="setting"]:hover,
.nav-a.current[data-name="setting"]{
    background-image: url(../img/nav/setting.png);
}

.nav-a[data-name="help"]{
    background-image: url(../img/nav/help_y.png);
    background-position: top 5px center;
    background-repeat: no-repeat;
}

.nav-a[data-name="help"]:hover,
.nav-a.current[data-name="help"]{
    background-image: url(../img/nav/help.png);
}


.nav-a[data-name="approval-list"]{
    background-image: url(../img/nav/approval_y.png);
    background-position: top 5px center;
    background-repeat: no-repeat;
}

.nav-a[data-name="approval-list"]:hover,
.nav-a.current[data-name="approval-list"]{
    background-image: url(../img/nav/approval.png);
}

.nav-a[data-name="need-help-list"]{
    background-image: url(../img/nav/need_help_list_y.png);
    background-position: top 5px center;
    background-repeat: no-repeat;
}

.nav-a[data-name="need-help-list"]:hover,
.nav-a.current[data-name="need-help-list"]{
    background-image: url(../img/nav/need_help_list.png);
}


.nav-a[data-name="raw-study-time-log"]{
    background-image: url(../img/nav/raw_study_time_log_y.png);
    background-position: top 5px center;
    background-repeat: no-repeat;
}

.nav-a[data-name="raw-study-time-log"]:hover,
.nav-a.current[data-name="raw-study-time-log"]{
    background-image: url(../img/nav/raw_study_time_log.png);
}


.nav-item{
    padding: 0;
    position: relative;
}

.nav-a.current,
.nav-a:hover{
    background-color: #FFCC00;
    color: #222;
}

.nav-a.current{
    pointer-events: none;
}

.nav-item:after{
    content: "";
    height: 60%;
    width: 1px;
    background-color: #fff;
    opacity: .1;
    position: absolute;
    right: 0;
    top: 20%;
    display: block;
}


/**
 * 
 */

.login-body {
    display: flex;
    align-items: center;
    padding-top: 40px;
    padding-bottom: 40px;
    background-color: #F8F6EC;
}

.login-body .login-wrap{
    width: 360px;
    box-sizing: border-box;
    margin: auto;
    padding: 30px;
    background: #FFF;
    border-radius: 10px;
}

form label{
    cursor: pointer;
}

form label:not(.form-check-label){
    width: 100%;
    display: block;
}

/**
 * カレンダー
 */
.calender-body {/*css gridで7列レイアウトを作る*/
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    column-gap: 10px;
    row-gap: 10px;
}

.calender-weekday{
    font-size: 0.75rem;
    color: #999;
}

.calender-weekday.sat{
    color: #39F;
}

.calender-weekday.sun{
    color: #C00;
}

.calender-day{
    width: 100%;
    display: flex;
    align-items: center;
    align-content: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    flex-wrap: wrap;
    background: #F8F6EC;
    border-radius: 50%;
    position: relative;
    cursor: pointer;
}

[data-concept = "study"] .calender-day,
[data-concept = "gym"] .calender-day,
[data-concept = "training"] .calender-day{
    background: #232323;
}

.js-calender{
    width: 85%;
    margin: 0 auto;
}

.calender-day.today{
    background-color: #FFCC00;
    box-shadow: 0 0 0px 3px #FFCC00;
}

.calender-day.current{
    background-color: #3399FF;
    color: #FFF;
    box-shadow: 0 0 0px 3px #3399FF;
}


.calender-day.restday{
    pointer-events: none;
    background: #e9e9e9;
    color: #bfbfbf;
}

.calender-day.stamp--fixed-date{
    background: #F00;
}

.calender-day.stamp{
/*    background: none;*/
}

.calender-day.stamp:before{
    content: "";
    width: 100%;
    height: 100%;
    display: block;
    z-index: 1;
    pointer-events: none;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 50%;
}

.calender-day.stamp--fixed-date:before{
    background-image: url(/img/stamp/goal.png);
    background-size: contain;
    width: 20px;
    height: 20px;
    top: -8px;
    right: -8px;
    left: auto;
    border-radius: 0;
}

.calender-day.stamp--perfect:before{
    background-image: url(/img/stamp/perfect.png);
    background-size: contain;
}

.calender-day.stamp--great:before{
    background-image: url(/img/stamp/great_string.png);
    background-size: contain;
}

.calender-day.stamp--good:before{
    background-image: url(/img/stamp/good.png);
    background-size: contain;
}

.calender-day.stamp--poor:before{
    background-image: url(/img/stamp/poor_string.png);
    background-size: contain;
}

.calender-day.stamp--bad:before{
    background-image: url(/img/stamp/bad.png);
    background-size: contain;
}

.calender-day:after{
    content: "";
    position: absolute;
}
.calender-day.has-not-completed:after{
    content: "未達有";
    font-weight: bold;
    font-family: "Noto Sans JP", serif;
    bottom: -3px;
    left: 0px;
    z-index: 100;
    color: #F00;
    font-size: 10px;
    line-height: 1;
    text-align: center;
    line-height: 1;
    width: 100%;
}

.calender-day.has-scheduled:after{
    content: "予定済";
    font-weight: bold;
    font-family: "Noto Sans JP", serif;
    bottom: -3px;
    left: 0px;
    z-index: 100;
    color: #FFF;
    font-size: 10px;
    text-align: center;
    line-height: 1;
    width: 100%;
}

.calender-day.stamp.stamping{
    animation-name: stamp;
    animation-duration: 1500ms;
    animation-timing-function: ease-in;
}

.calender-day:nth-of-type(10n-1).stamp--great:before{
    transform: rotate(-21deg);
}

.calender-day:nth-of-type(10n-3).stamp--great:before{
    transform: rotate(9deg);
}

.calender-day:nth-of-type(10n-3).stamp--great:before{
    transform: rotate(-5deg);
}

.calender-day:nth-of-type(10n-4).stamp--great:before{
    transform: rotate(18deg);
}

.calender-day:nth-of-type(10n-5).stamp--great:before{
    transform: rotate(5deg);
}

.calender-day:nth-of-type(10n-6).stamp--great:before{
    transform: rotate(-2deg);
}

.calender-day:nth-of-type(10n-7).stamp--great:before{
    transform: rotate(-12deg);
}

.calender-day:nth-of-type(10n-8).stamp--great:before{
    transform: rotate(16deg);
}

.calender-day:nth-of-type(10n-9).stamp--great:before{
    transform: rotate(8deg);
}

.calender-day-str{
    line-height: 1;
    width: 100%;
    pointer-events: none;
    user-select: none;
    font-size: 14px;
}

.calender-time-str{
    line-height: 1;
    font-size: .75rem;
    pointer-events: none;
    user-select: none;
}

.modal-stamp,
.modal-timer{
    width: 480px;
    max-width: 100%;
    height: 100%;
    margin: 0 auto;
    opacity: 0;
    background: rgba( 255,255,255, 1 );
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    pointer-events: none;
    transition: opacity .2s;
}

.modal-praise{
    width: 480px;
    max-width: 100%;
    height: 100%;
    margin: 0 auto;
    opacity: 0;
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
    z-index: 100;
    pointer-events: none;
    transition: opacity .5s;

}

.modal-praise .praise-content{

}

.modal-stamp.show,
.modal-praise.show{
    opacity: 1;
    pointer-events: auto;
}


/** pager **/
.pager-item{
    width: 32px;
    aspect-ratio: 1;
    font-size: 14px;
    padding: 7px 5px;
    line-height: 1;
    text-align: center;
    margin-right: .25rem;
    border-radius: 5px;
    background: #FFF;
    color: #333;
    cursor: pointer;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pager-item:nth-last-of-type(1){
    margin-right: 0;
}

.pager-item.current{
    background: #FC0;
    font-weight: bold;
    pointer-events: none;    
}

.pager-disable{
    color: #FFF;
    background: transparent;
    pointer-events: none;
}

.pager--prev,
.pager--next{    
    color: #fff;
    background-color: #0d6efd;
    border-color: #0d6efd;
}

.pager--prev:hover,
.pager--next:hover{
    color: #fff;
    background-color: #0b5ed7;
    border-color: #0a58ca;    
}


/**
 * animation
 */
@keyframes stamp {
  0% {
    opacity: 0;
  }
  1% {
    opacity: 0;
    transform: scale(1.5);
  }
  11% {
    opacity: 1;
    transform: scale(1);
  }
  100%{
    opacity: 1;
  }
}

@keyframes toubatsu {
  0% {
    opacity: 0;
    transform: scale(2.5) rotate(-60deg);
  }
  100% {
    opacity: 1;
    transform: scale(1.0) rotate(-20deg);
  }
}

.poyon {animation: poyon 0.8s ease ;}
@keyframes poyon {
  0%   { transform: scale(0.8, 1.4) translate(0%, -100%);}
  10%  { transform: scale(0.8, 1.4) translate(0%, -15%); }
  20%  { transform: scale(1.4, 0.6) translate(0%, 30%); }
  30%  { transform: scale(0.9, 1.1) translate(0%, -10%); }
  40%  { transform: scale(0.95, 1.2) translate(0%, -30%); }
  50%  { transform: scale(0.95, 1.2) translate(0%, -10%); }
  60%  { transform: scale(1.1, 0.9) translate(0%, 5%); }
  70%  { transform: scale(1.0, 1.0) translate(0%, 0%); }
  100% { transform: scale(1.0, 1.0) translate(0%, 0%); }
}

.purun {animation: purun 0.8s ease ;}
@keyframes purun {
  0%   { transform: scale(1.0, 1.0) translate(0%, 0%);}
  15%  { transform: scale(0.9, 0.9) translate(0%, 5%); }
  30%  { transform: scale(1.3, 0.8) translate(0%, 10%); }
  50%  { transform: scale(0.8, 1.3) translate(0%, -10%); }
  70%  { transform: scale(1.1, 0.9) translate(0%, 5%); }
  100% { transform: scale(1.0, 1.0) translate(0%, 0%);}
}

/**
 * task
 */

.task-checkbox{
    width: 20px;
    height: 20px;
    position: relative;
}

.task-item[data-status = "0"],
.task-item[data-status = "1"],
.task-item[data-status = "9"]{
    position: relative;
}

.task-item[data-status = "0"] .card-body,
.task-item[data-status = "9"] .card-body,
.task-item[data-status = "1"] .card-body{
    padding: .5rem;
}

.task-item .complete-date{
    display: none;
}

.task-item[data-status = "1"] .enemy-img img{
    filter: grayscale(1);
} 

.task-item[data-status = "1"] .card-text{
    opacity: 0.9;
}

.answer-item:before{
}

.candidate-item[data-is-complete = "1"],
.task-item[data-is-complete = "1"]{
    opacity: .7;
    filter: grayscale(.9);
    overflow: hidden;
}

.candidate-item[data-is-complete = "1"]{
    opacity: 0.4;
}

.task-log .task-item[data-is-complete = "0"]{
    overflow: hidden;
}

.candidate-item[data-is-complete = "1"]:before,
.task-item[data-is-complete = "1"]:before{
    content: "完了";
    position: absolute;
    font-family: "Dela Gothic One", sans-serif;
    font-weight: 400;
    font-size: 60px;
    display: block;
    opacity: .75;
    border: 3px solid #CC0000;
    box-sizing: border-box;
    padding: .5rem;
    border-radius: 10px;
    line-height: 1;
    right: calc(50% - 80px);
    top: 4px;
    color: #CC0000;
    animation-name: toubatsu;
    animation-duration: 300ms;
    animation-timing-function: ease-in;
    transform-origin: center center;
    transform: scale(1.0) rotate(-20deg);
    pointer-events: none;
    z-index: 1;
}

.candidate-item[data-is-complete = "1"]:before{
    content: "完了済";
    font-size: 48px;
    animation: none;
    top: 8px;
}

.task-item{
    transition: all .1s;
}

.task-item:active{
    transform: scale(.98);
    transform-origin: center center;
}
/*
.card.task-item:not(.no-color):nth-of-type(5n-4){
    background-color: rgb(187 0 0 / 28%);
}
.card.task-item:not(.no-color):nth-of-type(5n-3){
    background-color: rgb(177 0 187 / 28%);
}
.card.task-item:not(.no-color):nth-of-type(5n-2){
    background-color: rgb(148 227 0 / 28%);
}
.card.task-item:not(.no-color):nth-of-type(5n-1){
    background-color: rgb(0 13 187 / 28%);
}
.card.task-item:not(.no-color):nth-of-type(5n){
    background-color: rgb(0 168 187 / 28%);
}
*/

/**
 * praise
 */
.modal-praise-overlay{
    width: 100%;
    height: 100%;
    z-index: 1;
    position: fixed;
}

.praise-content {
    width: 100%;
    background: #FFCC00;
    color: #333;
    z-index: 2;
}

.bonus-announcement-wrap{
    background: linear-gradient(45deg, #DAAF08 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #DAAF08 90% 100%);
    animation: gradient 5s infinite cubic-bezier(.62, .28, .23, .99) both;
    background-size: 800% 400%;
    color: #FFF;
    text-shadow: 1px 1px 0 rgb(0 0 0 / 30%);
}

.bonus-announcement-title{
    font-size: 1.25rem;
}

.btn-study-start.active-bonus{
    position: relative;
    font-size: 1.25rem;
    padding-top: 2.25rem !important;
}

.btn-study-start.active-bonus:active{
    border: none !important;
    outline: none !important;
}

.btn-study-start.active-bonus:before{
    content: "金額アップキャンペーン中";
    display: inline-block;
    position: absolute;
    left: calc(50% - 100px);
    width: 200px;
    top: 11px;
    padding: 2px 6px;
    text-align: center;
    color: #FFF;
    font-size: 14px;
    font-weight: bold;
    border-radius: 13px;
    background: rgba(0, 0, 0, .15);
}

.btn-study-start.active-bonus:after{
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    border-radius: 5px;
    top: 0;
    z-index: -1;
    background: url(../img/common/glass_bg.png) no-repeat center bottom -60px;
    left: 0;
    background-size: cover;
    mix-blend-mode: color-burn;
}

.btn-study-start[data-today-completed = '1']{
    position: relative;
}

.btn-study-start[data-today-completed = '1']:before{
    width: 100%;
    content: "今日のべんきょうは終わりました";
    position: absolute;
    background: #0d6efd;
    color: #FFF;
    padding: 2px 10px;
    left: 0;
    top: 14px;
}

.candidate-wrap,
.candidate-task-wrap{
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    column-gap: 2px;
}

.like-button{
    display:inline-block;
    position: relative;
}
.like-button input[type=checkbox]{
    opacity: 0;
    position: absolute;
    left: 0;
}
.like-button label{
/*    padding: 15px 20px;*/
    border-radius: 5px;
    background: #eee;
    color: #666;
    display: inline-block;
    cursor: pointer;
    transition: .2s;
/*    text-align: center;*/
}
.like-button input[type="checkbox"]:checked + label{
    background: #FFCC00;
    color: #333;
}

.like-button input[type="checkbox"]:checked + label:before{
    content: "選択中";
    position: absolute;
    left: -5px;
    top: -5px;
    display: block;
    font-size: 10px;
    background: #F90;
    color: #FFF;
    padding: 1px 4px;
}

.accordion-title{
    padding: 15px 20px;
    background: #555;
    color: #FFF;
    cursor: pointer;
    transition: .2s;
    position: relative;
    overflow: hidden;
    margin-bottom: 3px;
}

.accordion-title .complete-percentage{
    position: absolute;
    right: .5rem;
    font-size: 12px;
    top: calc( 50% - 0.5rem );
    line-height: 1;
}

.accordion-title .complete-percentage b{
    font-size: 18px;
    display: inline-block;
    margin: 0 2px;
}

.layer--2 .accordion-title{
    background: #777;
}


.layer--3 .accordion-title{
    background: #999;
}

.accordion-title.open{
    background: #FC0;
    color: #333;
}

/* ローディングアイコン設定 */

#loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-weight: bold;
}

/*jQueryで付与されたdisappearクラスがついたらロゴエリアを非表示*/

#loading.disappear{
     display: none;   
}

/* youtube設定 */

#youtube-area{
    position: fixed;
    z-index: -1;/*最背面に設定*/
    top: 0;
    right:0;
    left:0;
    bottom:0;
    overflow: hidden;
    opacity: 0;    
}

/*jQueryで付与されたappearクラスがついたらYoutubeエリアをふわっと表示*/

/**
 * TOPページでは動画出さない
 */
body[data-current="home"] #youtube-area,
body[data-current="help-log"] #youtube-area,
body[data-current="brain-game"] #youtube-area,
body[data-current="large-goal"] #youtube-area,
body[data-current="study-text"] #youtube-area,
body[data-current="calender"] #youtube-area,
body[data-current="home"] #video-area,
body[data-current="help-log"] #video-area,
body[data-current="brain-game"] #video-area,
body[data-current="large-goal"] #video-area,
body[data-current="study-text"] #video-area,
body[data-current="calender"] #video-area,
body[data-current="test-list"] #youtube-area,
body[data-current="test-list"] #video-area,
body[data-current="study-log-list"] #youtube-area,
body[data-current="study-log-list"] #video-area,
body[data-current="study-answer"] #youtube-area,
body[data-current="study-answer"] #video-area,
body[data-current="question-regist"] #youtube-area,
body[data-current="question-regist"] #video-area,
body[data-current="question-regist-check"] #youtube-area,
body[data-current="question-regist-check"] #video-area,
body[data-current="result"] #youtube-area,
body[data-current="result"] #video-area,
body[data-current="profile"] #youtube-area,
body[data-current="profile"] #video-area,
body[data-current="team-edit"] #youtube-area,
body[data-current="team-edit"] #video-area,
body[data-current="task-list"] #youtube-area,
body[data-current="task-list"] #video-area{
    display: none;
}

#youtube-area.appear {
    animation-name:PageAnimeAppear;
    animation-duration:.5s;
    animation-fill-mode:forwards;
}

@keyframes PageAnimeAppear{
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

#youtube {
/*天地中央配置*/
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
/*縦横幅指定*/
  width: 177.77777778vh; /* 16:9 の幅→16 ÷ 9＝ 177.77% */
  height: 56.25vw; /* 16:9の幅 → 9 ÷ 16 = 56.25% */
  min-height: 100%;
  min-width: 100%;
}

/*youtubeがクリックされないためのマスク*/
#youtube-mask{
    position: absolute;
    z-index: 2;/*下から2番目に表示*/
    top:0;
    width:100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
}

.user{
    backdrop-filter: blur(5px) saturate(90%);
    -webkit-backdrop-filter: blur(10px) saturate(90%);
    background-color: rgba(0, 0, 0, 0.6);
    border-radius: 12px;
    box-shadow: 0px 7px 14px 0px rgba(0, 0, 0, .4);
}

.user-profile img{
    border-radius: 50%;
}

.user-profile .name{
    color: #FFF;
}


.gym .btn-primary{
    color: #333;
    background-color: #FFCC00;
    border-color: #ffcc00;
}

.user-status{
    position: relative;
}

.user-status .level-wrap {
    font-size: 12px;
}

.user-status .user-status-img{
    width: 80px;
    height: 80px;
    border-radius: 45px;
    object-fit: cover;
}

.user-reward a{
    text-decoration: none;
}

.user-reward .card-img-top{
    width: 100%;
    height: 150px;
    object-fit: cover;
}

.reward-item .reward-img img{
    object-fit: cover;
    height: 150px;
}


.reward-item{
    position: relative;
}

.reward-item.wanted:before{
    content: attr(data-want-num);
    background: #FFF;
    color: #333;
    font-size: 16px;
    border-radius: 15px;
    position: absolute;
    left: 3px;
    top: 3px;
    width: 28px;
    height: 28px;
    text-align: center;
    border: 2px solid #FC0;
    box-sizing: border-box;
    font-weight: 700;
}

.reward-thumb img{
  max-width: 100%;
  height: auto;
  align-self: flex-start;
}

.earned-str{
    font-size: 130%;
    transition: transform .1s;
    display: inline-block;
    transform-origin: center right;
    line-height: 1;
}

.earned-str.large{
    transform: scale(1.25);
}


/**
 * task
 */
 

.tasks{
    max-height: calc(100vh - 280px);
    overflow-y: scroll;
}
 

.gold {
    text-align: right;
    min-width: 90px;
    position: relative;
}

.gold .gold-str{
    font-size: 140%;
    position: relative;
}


.gold .gold-str:before{
    content: "";
    background: url("/img/coin/small.png") no-repeat left bottom;
    width: 22px;
    height: 17px;
    position: absolute;
    left: -30px;
    bottom: 8px;
    display: block;
}

.gold[data-size = 'medium'] .gold-str:before{
    content: "";
    background: url("/img/coin/medium.png") no-repeat left bottom;
    width: 29px;
    height: 28px;
    bottom: 0px;
}

.gold[data-size = 'large'] .gold-str:before{
    content: "";
    background: url("/img/coin/large.png") no-repeat left bottom;
    width: 23px;
    height: 36px;
    bottom: -3px;
}

.add-user,
.add-rivals,
.add-target{
    position: relative;
    margin-top: 2rem;
}

.add-user:before{
    position: absolute;
    content: "USER";
    font-family: "Chakra Petch", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 16px;
    top: -30px;
    left: 11px;
    letter-spacing: .25rem;
    border-bottom: 1px solid #999;
    padding-left: 10px;
    padding-right: 10px;
    line-height: 1;
    color: #999;
}

.add-rivals:before{
    position: absolute;
    content: "RIVALS";
    font-family: "Chakra Petch", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 16px;
    top: -30px;
    left: 11px;
    letter-spacing: .25rem;
    border-bottom: 1px solid #999;
    padding-left: 10px;
    padding-right: 10px;
    line-height: 1;
    color: #999;
}

.add-target:before{
    position: absolute;
    content: "設定中のごほうび";
    font-family: "Chakra Petch", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 16px;
    top: -30px;
    left: 11px;
    letter-spacing: .25rem;
    border-bottom: 1px solid #999;
    padding-left: 10px;
    padding-right: 10px;
    line-height: 1;
    color: #999;
}

.add-user:after,
.add-rivals:after,
.add-target:after{
    position: absolute;
    content: "";
    width: 15px;
    height: 1px;
    background: #999;
    transform: rotate(-45deg);
    top: -9px;
    left: -1px;
}

.slash.run{
    animation-name: splitSlash;
    animation-duration: 0.65s;
    animation-timing-function: cubic-bezier(0.83, 0, 0.17, 1);
    animation-fill-mode: forwards;
    width: 28px;
    height: 300px;
    background: url(/img/effect/slash.png) no-repeat center top;
    opacity: 0.65;
    display: block;
    position: absolute;
    left: calc(50% - 14px);
    top: -300px;
    z-index: 10;
}

@keyframes splitSlash{
    0%{
        top: -300px;
    }
    50%{
        height: 750px;
    }
    100%{
        top: 800px;
    }
}

.hero-thumb{
    margin-bottom: -32px;
}

.hero-thumb .level{
    font-size: 15px;
}

.hero-thumb .level-exp{
    font-size: 12px;
}




.map-wrap{
    position: relative;
}

.map-pins{
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: block;
    top: 0;
    left: 0;
}
.map-pin{
    position: absolute;
    left: 10px;
    top: 10px;
    font-size: 10px;
    color: #333;
    background: #FC0;
    padding: 2px 4px;
    border-radius: 2px;
}

.map-pin:nth-of-type(2){
    left: 40px;
    top: 60px;   
}

.map-pin:nth-of-type(3){
    left: 85px;
    top: 40px;  
}

.map-pin:nth-of-type(4){
    left: 120px;
    top: 100px;   
}

.map-pin:nth-of-type(5){
    left: 80px;
    top: 140px;   
}

.map-pin:nth-of-type(6){
    left: 160px;
    top: 40px;   
}

.boss-pin{
    position: absolute;
}

.boss-pin:nth-of-type(1){
    left: 220px;
    top: 100px;
}

.boss-pin:nth-of-type(2){
    left: 230px;
    top: 10px;
}

.boss-pin:nth-of-type(3){
    left: 320px;
    top: 50px;
}

.reward-pin{
    background: none;
    left: auto;
    top: auto;
    right: 10px;
    bottom: 10px;
    border-radius: 50%;
    border:2px solid #C00;
}
.hero-pin{
    background: none;
    left: 180px;
    top: 100px;   
}

.map-pin::before{
  content: '';
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  left: 15px;
  bottom: -5px;
  border-top: 5px solid #FC0;
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
}

.hero-pin::before,
.reward-pin::before{
    display: none;
}

.fighting{
    background: #000;
    color: #F00;
}


.point-item-wrap {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 10px;
    row-gap: 10px;
}

.point-item{
    border: 1px solid #CCC;
    display: block;
    text-decoration: none;
    color: #333;
    view-transition-name: point;
}

.point-icon{
    position: relative;
}

.point-icon img{
    width: 70%;
}

.point-icon:before{
    content: "";
    position: absolute;
    left: -5px;
    top: -5px;
    display: block;
    font-size: 14px;
    background: #F90;
    color: #FFF;
    padding: 1px 4px;
    transform:rotate(-5deg);
}
.point-icon[data-point-num = "1"]:before{
    display: none;
}
.point-icon[data-point-num = "2"]:before{
    content: "10%増量!";
    font-size: 14px;
}
.point-icon[data-point-num = "3"]:before{
    content: "10%増量!";
    font-size: 14px;
}
.point-icon[data-point-num = "4"]:before{
    content: "20%増量!";
    font-size: 16px;
}
.point-icon[data-point-num = "5"]:before{
    content: "30%増量!";
    font-size: 16px;
}
.point-icon[data-point-num = "6"]:before{
    content: "40%増量!";
    font-size: 18px;
}

.point-text b{
    font-size: 125%;
}

.point-thumb{
    view-transition-name: point;
    contain: paint;
}

.point-thumb img{
    max-width: 20%;
}

.support-user{
    color: #333;
    text-decoration: none;
    view-transition-name: user-profile;
}


.complete-task-list{
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    column-gap: 10px;
    row-gap: 10px;
}

.complete-task-list .disabled{
    filter: grayscale(1);
    opacity: 0.4;
}

.complete-task-list img{
    max-width: 100%;
}

.task-link,
.task-link img,
.task-img img{
    view-transition-name: task;
}

.sample-task{
    color: #FFF;
    background-color: rgba(255, 255, 255, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-right-color: rgba(255, 255, 255, 0.2);
    border-bottom-color: rgba(255, 255, 255, 0.2);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    box-shadow: 0px 5px 20px -10px rgba(0, 0, 0, .5);
}

.sample-task-level,
.sample-task-exp,
.sample-task-gold{
    position: relative;
    font-size: 10px;
}

.sample-task-level:before{
    content: "Lv";
    background: #364c57;
    border-radius: 50%;
    font-size: 10px;
    width: 20px;
    height: 20px;
    display: flex;
    color: #FFF;
    font-weight: bold;
    justify-content: center;
    align-items: center;
    position: absolute;
    left: -24px;
    top: 6px;
}


.sample-task-exp:before{
    content: "EXP";
    background-image: linear-gradient(181deg, #00c300, #018701);
    border-radius: 50%;
    font-size: 10px;
    width: 20px;
    height: 20px;
    display: flex;
    color: #FFF;
    font-weight: bold;
    justify-content: center;
    align-items: center;
    position: absolute;
    left: -24px;
    top: 6px;
}

.sample-task-gold:before{
    content: "G";
    background-image: linear-gradient(180deg, #f9dd00, #ffbc00);
    border-radius: 50%;
    font-size: 10px;
    width: 20px;
    height: 20px;
    display: flex;
    color: #333;
    font-weight: bold;
    justify-content: center;
    align-items: center;
    position: absolute;
    left: -24px;
    top: 6px;
}

.sample-task-level b,
.sample-task-exp b,
.sample-task-gold b{
    font-size: 200%;
    display: inline-block;
    margin-right: 2px;
}

[data-concept="study"] .card,
[data-concept="training"] .card{
  background-color: rgba(255, 255, 255, 0.2); /* 背景色 */
  border: 1px solid rgba(255, 255, 255, 0.4); /* ボーダー */
  border-right-color: rgba(255, 255, 255, 0.2);
  border-bottom-color: rgba(255, 255, 255, 0.2);
  -webkit-backdrop-filter: blur(20px); /* ぼかしエフェクト */
  backdrop-filter: blur(20px);
/*  box-shadow: 0px 5px 20px -10px rgba(0, 0, 0, .5);*/
}

[data-concept="study"] .card[data-status = "0"],
[data-concept="training"] .card[data-status = "0"]{
    background-color: rgb(255 40 40 / 20%);
/*    border: 1px solid rgba(255, 40, 40, 0.4);
    border-right-color: rgba(255, 40, 40, 0.2);
    border-bottom-color: rgba(255, 40, 40, 0.2);*/
}

[data-concept="study"] .card[data-status = "1"],
[data-concept="training"] .card[data-status = "1"]{
    background-color: rgb(0 241 11 / 20%);
/*    border: 1px solid rgba(0, 241, 11, 0.4);
    border-right-color: rgba(0, 241, 11, 0.2);
    border-bottom-color: rgba(0, 241, 11, 0.2);*/
}

[data-concept="gym"] .card{
    color: #FFF;
    background: rgba(0,0,0,0.5);
      -webkit-box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); /* 影 */
      box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); /* 影 */
      -webkit-backdrop-filter: blur(5px); /* ぼかし */
      backdrop-filter: blur(5px); /* ぼかし */
      border: 1px solid rgb(20 20 20 / 25%);
}

.user-shop-name{
    font-size: 12px;
}


.rivals-items{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 1rem;
    row-gap: .5rem;
}

.rivals-item{
    font-size: 10px;
}

.rivals-item .expup{
    color: #2dff2d;
    font-size: 12px;
    font-weight: 700;
}



#video-area{
    position: fixed;
    z-index: -1;/*最背面に設定*/
    top: 0;
    right:0;
    left:0;
    bottom:0;
    overflow: hidden;
}

#video {
    /*天地中央配置*/
    position: absolute;
    z-index: -1;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /*縦横幅指定*/
    width: 177.77777778vh; /* 16:9 の幅→16 ÷ 9＝ 177.77% */
    height: 56.25vw; /* 16:9の幅 → 9 ÷ 16 = 56.25% */
    min-height: 100%;
    min-width: 100%;
}


#video-mask {
    position: absolute;
    z-index: 2;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
}
.footer-progress{
    display: none;
    bottom: 41px;
    pointer-events: none;
}
.footer-progress img{
    max-width: 100%;

}

#level-progress{
    width: 100%;
}

.task-list-wrap{
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    column-gap: 10px;
    row-gap: 5px;
}



/** スタンプカード */
.stamp-card-wrap{
    color: #333;
    background-color: #f4efe2;
    background-image: url(https://www.transparenttextures.com/patterns/paper-fibers.png);
    background-repeat: repeat;
    border-radius: 3px;
}

.stamp-card-body{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 0px;
    row-gap: 0px;
}

.stamp-card-body > * {
  min-width: 0;  /* ←これで中身が親の幅に収まるようになる */
}


.stamp-card-title{
    font-size: 1.375rem;
    letter-spacing: .05em;
    text-align: center;
    margin-bottom: 1rem;
    font-family: "Noto Sans JP";
}

.stamp-zone{
    width: 100%;
    display: flex;
    align-items: center;
    align-content: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    flex-wrap: wrap;
    position: relative;
    cursor: pointer;
    color: #999;
}

.stamp-zone:nth-of-type(8n-6),
.stamp-zone:nth-of-type(8n-4),
.stamp-zone:nth-of-type(8n-3),
.stamp-zone:nth-of-type(8n-1){
    background: #e1ded4;
}

.stamp-card-body .stamp-zone:nth-last-of-type(1){
    font-size: 32px;
    font-weight: bold;
}

.stamp-zone[data-is-complete = "1"]:before{
    content: "";
    width: 50%;
    height: 50%;
    background-image: url(/img/stamp/great_string.png);
    background-size: contain;
    display: block;
    z-index: 1;
    pointer-events: none;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 50%;
}

.stamp-zone[data-is-complete = "1"].stamp-pon{
    animation-name: stamp;
    animation-duration: 1500ms;
    animation-timing-function: ease-in;
    animation-fill-mode: forwards;
}


.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-1):before{
    transform: rotate(-21deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-2):before{
    transform: rotate(9deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-3):before{
    transform: rotate(-5deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-4):before{
    transform: rotate(18deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-5):before{
    transform: rotate(5deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-6):before{
    transform: rotate(-2deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-7):before{
    transform: rotate(-12deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-8):before{
    transform: rotate(16deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-9):before{
    transform: rotate(8deg);
}

.task-item.currentTask{
    position: relative; 
}

.task-item.currentTask:before{
    content: "";
    display: block;
    position: absolute;
    left: -20px;
    top: calc(50% - 25px);
    background: #FFCC00;
    height: calc(tan(60deg)* 60px / 2);
    width: 30px;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
}

.kadai-image-wrap img{
    max-width: 90%;
    max-height: 100%;
}

.kadai-info-wrap .kadai-name{
    color: #333;
}

/**
 * 勉強テキスト
 */
.study-text,
[data-current = "result"],
[data-current = "question-regist"],
[data-current = "question-regist-check"]{
    background: #fffaf4;
    color: #444;
}

.study-text.study-text-answer{
    background: #dcfafd;
}

.study-text .video-area{
    display: none;
}


.study-text .prev-next-btn{
    background: #39F;
    color: #FFF;
    border: 1px solid #FFF;
    cursor: pointer;
    text-decoration: none;
}

.study-text .js-prev{
    background: #6a75d1;
}

.study-text .js-prev,
.study-text .js-next{
    user-select: none;
}

.study-text .js-prev[data-question-id = '0'],
.study-text .js-next.disabled{
    pointer-events: none;
    background-color: #CCC;
}

.proficiencyTest .no-save-alert{
    display: none;
}

.proficiencyTest .q-wrap{
    position: relative;
}
.proficiencyTest .q-wrap:before{
    content: "実力テストモード";
    font-size: 12px;
    font-family: 'Noto Sans';
    font-weight: bold;
    color: #FFF;
    background: #F00;
    display: inline-block;
    padding: .25rem;
    position: absolute;
    top: -8px;
    left: 0;
    line-height: 1.1;
}

.q-wrap.targetQuestion{
    border: 4px solid #ffCC00 !important;
    background: #fff5cf !important;
}


.study-text .memory-html,
.study-text .q-wrap,
.study-text .help-comment,
.study-text .point-html,
[data-current="assignment-result"] .q-wrap,
[data-current="result"] .memory-html,
[data-current="result"] .q-wrap,
[data-current="result"] .help-comment,
[data-current="result"] .point-html,
[data-current="question-regist-check"] .memory-html,
[data-current="question-regist-check"] .q-wrap,
[data-current="question-regist-check"] .help-comment,
[data-current="question-regist-check"] .point-html{
    letter-spacing: .05em;
    line-height: 1.75;
    background: #FFF;
    color: #333;
    border: 1px solid #EEE;
}

.study-text .q-img-wrap img{
    max-width: 100%;
}

.q-url-text-wrap{
    word-break: break-all;
}

.study-text .correctText{
    width: 4rem;
}

.study-text .a-img img{
    max-width: 100%;
}

.study-text .a-img-wrap{
    display: none;
}

.study-text .a-img-wrap[data-show-explanation="1"]{
    display: block;
}


/**
 * 紙ラフページ用
 */
.paper-comp{
    margin-top: 0;
    height: 100%;
    background: #FFF !important;
}

.paper-comp-wrap{
    position: relative; 
}

.paper-comp-wrap img{
    max-width: 100%;
}

.dummy-btn{
    opacity: .0;
    position: absolute;
    padding: 1rem;
}

.dummy-link{
    opacity: .0;
    position: absolute;
    padding: .5rem;
}



.want-teach-wrap{
    position: relative;
}

.consult-modal-trigger,
.want-teach-modal-trigger{
    font-size: 12px;
    color: #999;
}

.consult-modal-trigger span,
.want-teach-modal-trigger span{
    text-decoration: underline;
}

.want-teach-trigger.show{
    pointer-events: auto;
    opacity: 1;
}

.confidence-select-wrap{
}

.confidence-select-items{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 5px;
    row-gap: 5px;
}

.confidence-item{
    background: #FFF;
    border-radius: 30px;
    border: 1px solid #EEE;
    max-width: 100%;
    position: relative;
}

.confidence-item.check:before,
.want-teach-modal-trigger.check:before{
    content: "";
    background: url("/img/common/check.png") no-repeat center center;
    width: 24px;
    height: 24px;
    display: block;
    position: absolute;
    top: -10px;
    left: -5px;
    z-index: 1;
}

.confidence-selected-wrap img{
    max-width: 60px;
}


.battle-start{
    color: #333;
    position: absolute;
    z-index: 200000;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
}

.battle-start.fire{
    pointer-events: auto;
}

.battle-start .reward,
.battle-start .battle-progress,
.battle-start .button-wrap{
    opacity: 0;
}

.battle-start.fire .reward{
    animation-name: rewardShow;
    animation-duration: .6s;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
    animation-delay: 1s;
}

.battle-start.fire .battle-progress{
    animation-name: rewardShow;
    animation-duration: .6s;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
    animation-delay: 1s;
}

.battle-start.fire .button-wrap{
    animation-name: rewardShow;
    animation-duration: .6s;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
    animation-delay: 3.5s;
}


.overlay-wrap{
    z-index: 1;
    position: relative;
}

.reward-wrap{
    z-index: 2;
    position: relative;
    margin-bottom: 1.5rem;
}

.battle-progress-wrap{
    z-index: 3;
    position: relative;
}

.button-wrap{
    z-index: 4;
    position: relative;    
}

.reward-wrap .reward img{
    border-radius: 20px;
}

.overlay{
    width: 750px;
    height: 750px;
    left: -10px;
    top: -1050px;
    position: fixed;
    transform: rotate(45deg) scale(1);
    transform-origin: left top;
}

.overlay--1{
    background: #333;
    animation-delay: .0s;
    z-index: 1;
}

.overlay--2{
    background: #FFCC00;
    animation-delay: .2s;
    z-index: 2;
}

.overlay--3{
    background: #EEE;
    animation-delay: .4s;
    z-index: 3;
}

.fire .overlay{
    animation-name: overlay;
    animation-duration: .7s;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
}

@keyframes overlay {
  0%{
    transform: rotate(45deg) scale(1);
  }
  100%{
    transform: rotate(45deg) scale(2.2);
  }
}

@keyframes rewardShow {
  0%{
    opacity: 0;
    transform: translateY(30px);
  }
  100%{
    opacity: 1;
    transform: translateY(0px);
  }
}


.battle-progress .waku{
    width: 100%;
    height: 20px;
    border: 1px solid #616161;
    background: #000;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
}

.battle-progress .inner{
    width: 0%;
    height: 20px;
    border: 1px solid #616161;
    background: #60ff00;
    position: absolute;
    z-index: 2;
    transition: width 1.5s ease-in-out;
}


.battle-progress .earned-wrap{
    padding: 45px 0 10px;
}

.battle-progress .earned-wrap b,
.battle-progress .remain-wrap b{
    font-size: 175%;
    display: inline-block;
    margin: 0 5px;
}


.want-teach-modal-wrap{
    position: fixed;
    width: 100vw;
    height: 100vh;
    top: 0;
    left: 0;
    color: #FFF;
    z-index: 20000000;
    pointer-events: none;
    opacity: 0;
    transition: all .3s;
}

.want-teach-modal-wrap.show{
    opacity: 1;
    pointer-events: auto;
}

.want-teach-modal-overlay{
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 0;
    background: #000000d9;
}

.want-teach-modal-inner{
    top: 100px;
    z-index: 2;
    position: relative;
}


#clock{
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
}


.task-item-wrap{
    background: #FFF;
    border-radius: 15px;
    box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.3);
    color: #333 !important;
}

.task-item-wrap .test-list-item{
    background: #EEE;
    color: #333 !important;
    text-decoration: none;
}

.task-item-wrap .test-list-item[data-injustice = "1"]{
    position: relative;
    background: #FCC;
    overflow: hidden;
}

.task-item-wrap .test-list-item[data-injustice = "1"]:before{
    content: "不正";
    position: absolute;
    font-family: "Dela Gothic One", sans-serif;
    font-weight: 400;
    font-size: 60px;
    display: block;
    opacity: .75;
    border: 3px solid #CC0000;
    box-sizing: border-box;
    padding: .5rem;
    border-radius: 10px;
    line-height: 1;
    right: calc(50% - 80px);
    top: -10px;
    color: #CC0000;
    pointer-events: none;
    transform: rotate(-12deg);
    z-index: 1;
}

.task-item-wrap .date-wrap{
    font-size: 10px;
    color: #777;
}

.task-item-wrap .data-wrap-label{
    background: #6c757d;
    color: #FFF;
    padding: 3px 5px;
}

.task-item-wrap .test-list-item[data-is-complete = "1"] .data-wrap-label{
    background: #198754;
}

.task-item-wrap .test-list-item[data-is-complete = "0"] .data-wrap-label{
    background: #dc3545;
}

.task-item-wrap .title-wrap .sub-title{
    font-size: 14px;
    color: #444;
}

.task-item-wrap .title-wrap .title{
    font-size: 12px;
    color: #777;
}


.help-list-item{
    background: #EEE;
    color: #333 !important;
    text-decoration: none;    
}

.small-test-progress-wrap{
    width: 100%;
    position: fixed;
    bottom: 45px;
    left: 0;
    z-index: 3;
    background: #FFF;
}

.small-test-progress{
    position: relative;
}


.small-test-progress .base{
    width: 100%;
    height: 2px;
    background: #000;
}


.small-test-progress .own,
.small-test-progress .ghost{
    position: absolute;
    top: 0px;
    left: 0;
}

.small-test-progress .ghost{
    top: -24px;
    color: #C00;
}


.small-test-popup-wrap{
    width: 90vw;
    position: absolute;
    top: -70px;
    left: 5vw;
    z-index: 2140000000;
    transition: .3s top ease-in-out;
    text-align: center;
}

.small-test-popup-wrap.show{
    top: 10px;
}


.clock-wrap{
    display: none;
    position: fixed;
    top: 8px;
    z-index: 1031;
    color: #FFF;
    left: 50%;
    transform: translateX(-50%);
    pointer-events: none;
}

.sum-outer{
    color: #FFF !important;
    text-decoration: none;
}

.sum-inner{
    background: #1d1b35;
    font-size: 12px;
    border-radius: 15px;
    box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.3);
    position: relative;
    height: 100%;
}

.sum-inner[data-alert="1"]{
    background: #910000;
}

[data-current = "home"] .sum-inner,
[data-current = "study-data"] .sum-inner,
[data-current = "test-list"] .sum-inner{
    background: #F9F9F9;
    color: #333;
    font-size: 11px;
    border-radius: 0;
    box-shadow: -1px 0px 0px 0px rgb(187 187 187 / 30%);  
}

[data-current = "study-data"] .sum-inner.champion{
    color: #feb429 !important;
}

[data-current = "study-data"] .month-all-wrap .sum-inner.champion{
    color: #FEDB29 !important;
}

[data-current = "study-data"] .sum-inner.champion .sum-value{
    position: relative;
}

[data-current = "study-data"] .sum-inner.champion .sum-value:after{
    content: "";
    width: 12px;
    height: 12px;
    display: inline-block;
    background: url(../img/common/king.png) no-repeat center center;
    background-size: contain;
    position: absolute;
    bottom: 5px;
}

[data-current = "study-data"] .month-all-wrap .sum-inner{
    background: #2E5B88;
    color: #FFF;
}

[data-current = "study-data"] .sum-outer:nth-of-type(1) .sum-inner,
[data-current = "test-list"] .sum-outer:nth-of-type(1) .sum-inner{
    border-radius: 5px 0 0 5px;
}

[data-current = "study-data"] .sum-outer:nth-last-of-type(1) .sum-inner,
[data-current = "test-list"] .sum-outer:nth-last-of-type(1) .sum-inner{
    border-radius: 0 5px 5px 0;
}

[data-current = "home"] .sum-outer:nth-of-type(1) .sum-inner,
[data-current = "study-data"] .sum-wrap[data-show-rivals = "0"] .sum-outer:nth-of-type(1) .sum-inner{
    border-radius: 0 0 0 5px;
}

[data-current = "home"] .sum-outer:nth-last-of-type(1) .sum-inner,
[data-current = "study-data"] .sum-wrap[data-show-rivals = "0"] .sum-outer:nth-last-of-type(1) .sum-inner{
    border-radius: 0 0 5px 0;
}

.sum-value{
    font-size: 18px;
    font-weight: 900;
    line-height: 1.3;
}

.sum-value span{
    font-size: 10px;
}

.js-datepickerTrigger{
    text-decoration: underline;
}

.user-name{
    text-decoration: none;
    background: #FFF;
    border-radius: 15px;
    box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.3);
    color: #333 !important;
}

.latestLoginDate{
    color: #888;
    font-size: 11px;
}

/**
 * custom
 */
.jqtl-side-index .jqtl-side-index-item{
    color: #333;
}
.jqtl-side-index .jqtl-side-index-item img{
    width: 30px !important;
    height: 30px !important;
}

.jqtl-event-node{
    border-radius: 5px !important;
}

.reward-regist-form-wrap{
    text-decoration: none;
    background: #FFF;
    border-radius: 15px;
    box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.3);
    color: #333 !important;   
}




.q-text__replace-item--index {
    color: #f00;
    font-weight: 700;
    display: inline-block;
    margin: 0 5px;
    position: relative;
}

.q-text__replace-item--index.current{
    background: #F00;
    color: #FFF;
}

.q-wrap .strLength,
.q-text__replace-item--index .strLength{
    font-size: 12px;
    color: #999;
    padding-left: .5rem;
}

.q-text__replace-item--index.current .strLength{
    color: #FFF;
}

.q-text__replace-item--self, .q-text__replace-item--other {
    font-size: 12px;
    display: inline-block;
    margin: 0 10px 0 0;
    color: #999;
}


.study-calender{
    text-decoration: none;
    background: #FFF;
    border-radius: 15px;
    box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.3);
    color: #333;
}

.study-calender:not(.movies) a{
    color: #333;
    text-decoration: none;
    transition: all .3s;
}

/*.study-calender a:hover{
    background: #EEE;
}*/

.study-calender [data-not-study = "1"]{
    background: #e3e3e3 !important;
    color: #bbb;
}


/*.study-calender a.btn{
    color: #FFF;
}
*/

.study-calender-item{
    cursor: pointer;
}

.study-calender .study-calender-item:nth-of-type(2n-1){
    background: #F9F9F9;
}

.study-calender-head{
    font-size: 12px;
    font-weight: bold;
}

.study-calender-item .mini{
    font-size: 75%;
}

.study-calender-item .late{
    font-size: 10px;
    color: #F00;
}

.study-calender-item .rating{
    padding: 0 .5rem;
}

.study-calender-item .rating img{
    max-width: 100%;
}

.study-calender-item--future{
    color: #CCC;
}

.attend-time{
    font-size: 18px !important;
    font-weight: 900 !important;
    position: relative;
}
.login-time span,
.attend-time span{
    font-size: 10px;
/*    font-weight: 400;*/
}

.attend-time[data-late = "1"]{
    color: #20519d;
}

.study-time{
    font-size: 16px;
    position: relative; 
}

.answer-item{
    border-bottom: 1px solid #f3ddc1;
    position: relative;
}


.answer-item:before{
    content: "";
    width: 50px;
    height: 50px;
    display: block;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: -30px;
    z-index: 1;
}

.answer-item[data-correct = "0"]:before{
    background: url(../img/study_answer/ng.png) no-repeat center center;
    background-size: contain;
}

.answer-item[data-correct = "1"]:before{
    background: url(../img/study_answer/ok.png) no-repeat center center;
    background-size: contain;
}


.single-answer-item{
    position: relative;    
}

.single-answer-item:empty{
    display: none;
}


.single-answer-item:before{
    content: "";
    width: 40px;
    height: 40px;
    display: block;
    pointer-events: none;
    position: absolute;
    left: -10px;
    top: 10px;
    z-index: 1;
}

.single-answer-item[data-correct = "0"]:before{
    background: url(../img/study_answer/ng.png) no-repeat center center;
    background-size: contain;
}

.single-answer-item[data-correct = "1"]:before{
    background: url(../img/study_answer/ok.png) no-repeat center center;
    background-size: contain;
}

.single-answer-item img{
    max-width: 100%;
}


.test-log-wrap{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 1rem;
    padding-bottom: 2rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid #f3ddc1;
}


.test-log-item{
    background: #FFF;
    border: 1px solid #EEE;
}

.test-log-item-num{
    font-weight: 900;
    font-size: 24px;
}


.postimage-item{
    font-size: 12px;
}
.postimage-item img{
    max-width: 100%;
}



.match-percentage-str{
    display: inline-block;
    margin-left: .5rem;
}

.match-percentage-str b{
    font-size: 150%;
    margin: 0 3px;
    line-height: 1;
}

.match-percentage-str span{
    font-size: 75%;
    color: #999;
}




/**
 * 正解不正解アニメーション
 */

.correct-animation-wrap,
.incorrect-animation-wrap{
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 200000000000;
    pointer-events: none;
}

.correct-animation-wrap[data-show = "1"],
.incorrect-animation-wrap[data-show = "1"]{
    pointer-events: auto;
}

.correct-animation-overlay,
.incorrect-animation-overlay{
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: -100vh;
    left: 0;
    background: rgba(255,255,255,.8);
}

.incorrect-animation-overlay{
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    opacity: 0;
    background: rgba(0,0,0,.8);
}

.correct-animation,
.incorrect-animation{
    position: relative;
    z-index: 1;
}


.correct-animation-wrap[data-show = "1"] .correct-animation-overlay{
    animation: .5s bound cubic-bezier(0.4, 0, 0.2, 1) 1 forwards;
}

.incorrect-animation-wrap[data-show = "1"] .incorrect-animation-overlay{
    animation: .5s fadeIn linear 1 forwards;
}


.correct-animation-wrap .correct-animation,
.incorrect-animation-wrap .incorrect-animation{
    font-size: 30vw;
    height: 100vh;
    text-align: center;
    font-weight: 900;
    color: #ff5454;
    display: flex;
    top: 0;
    left: 0;
    transform: translate(0%, -100%);
    justify-content: center;
    align-items: center;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 900;
    font-style: normal;
    flex-wrap: wrap;
    align-content: center;
}

.incorrect-animation-wrap .incorrect-animation{
    opacity: 0;
    transform: translate(0%, -5%);
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}

.incorrect-animation-wrap .incorrect-animation{
    font-size: 18vw;
}

.correct-animation-text{
    background: linear-gradient(#ff8888, #ff5454);
    -webkit-background-clip:text;
    -webkit-text-fill-color: transparent;
    transform: translateY(-20%);
    line-height: 1.1;
}

.incorrect-animation-text{
    background: linear-gradient(#8897ff, #5471ff);
    -webkit-background-clip:text;
    -webkit-text-fill-color: transparent;
    transform: translateY(-20%);
    line-height: 1.1;
}

.correct-animation-wrap[data-show = "1"] .correct-animation{
    animation: 1.6s .5s poyon ease 1 forwards;  
}

.incorrect-animation-wrap[data-show = "1"] .incorrect-animation{
    animation: 1.6s .5s fadeIn ease 1 forwards;  
}


.incorrect-animation-leaf{
    position: absolute;
    list-style: none;
    top: -50px;
    border-radius: 0% 70%;
    left: 15%;
    top: -50px;
    width: 16px;
    height: 10px;
    background-color: #c2704e;
}

.incorrect-animation-wrap[data-show = "1"] .incorrect-animation-leaf{
    animation: fall 12s linear infinite,
             sway 3.5s ease-in-out infinite alternate;
}

.incorrect-action-btn-wrap{
    width: 80vw;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 10px;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

@keyframes fadeIn {
  100% { opacity: 1; transform: translate(0%, 0%); }
}

@keyframes bound {
    100% {
        top: 0;
    }
}

@keyframes fall {
  to {
    top: 120%;
  }
}

@keyframes sway {
  from {
    transform: translateX(0px) rotate(0deg);
  }
  to {
    transform: translateX(200px) rotate(-45deg);
  }
}


.logout-check{
    width: 36px;
    font-size: 12px;
    margin-left: .25rem;
    padding: .25rem;
    background-color: #0d6efd;
    background-image: url(../img/nav/logout_w.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center center;
    border-radius: 3px;
}


.add-arrow{
    position: relative;
}


.add-arrow:after{
    content: ">";
    font-size: 14px;
    color: #AAA;
    position: absolute;
    display: block;
    right: .5rem;
    top: calc(50% - 7px);
    line-height: 1;
}



.test-list-wrap{
    background: #FFF;
    color: #333;
    font-size: 14px;
}



.counter{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 10px;
    row-gap: 10px;
}

.counter-col-4{
    grid-template-columns: repeat(4, 1fr);
}

.counter-item{
    background-color: rgba(255, 255, 255, 0.2);
    color: #FFF;
    border-radius: 10px;
}

.counter-item.active{

}

.counter-item.inactive{
    opacity: 0.2;
}

.counter-item[data-status = "0"]{
    background-color: rgb(255 40 40 / 20%);
    color: #FFF;
}

.counter-item[data-status = "1"]{
    background-color: rgb(0 241 11 / 20%);
    color: #FFF;
}

.counter-item[data-status = "2"]{
    background-color: rgb(255 181 40 / 20%);
    color: #FFF;    
}

.counter-item[data-status = "3"]{
    background: rgb(95 105 183 / 20%);
    color: #FFF;    
}

.counter-item-title{
    font-size: 14px;
}

.counter-item-num{
    font-size: 12px;
}

.counter-item-num .counter-item-num--child{
    font-size: 225%;
    font-weight: 900;
}

.complete-date{
    position: absolute;
    font-size: 12px;
    background: #FFCC00;
    color: #000;
    filter: brightness(0.9);
    padding: 2px 8px;
    left: -6px;
    top: -3px;
    border-radius: 3px 3px 3px 0;
    z-index: 1;
}

.complete-date:before{
    content: "";
    width: 6px;
    aspect-ratio: 1;
    clip-path: polygon(0 0, 100% 0, 100% 100%);
    background: #a78a15;
    display: block;
    position: absolute;
    left: 0;
    bottom: -6px;
    z-index: -1;
}


.complete-date[data-day-of-week = "1"]{
    background: #ffdcc3;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "1"]:before{
    background: #bda47e;
}


.complete-date[data-day-of-week = "2"]{
    background: #ffc3ec;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "2"]:before{
    background: #bd7eb8;
}

.complete-date[data-day-of-week = "3"]{
    background: #c3c4ff;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "3"]:before{
    background: #7e7fbd;
}

.complete-date[data-day-of-week = "4"]{
    background: #d7ffc3;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "4"]:before{
    background: #7ebd80;
}

.complete-date[data-day-of-week = "5"]{
    background: #fffbc3;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "5"]:before{
    background: #bdbc7e;
}

.complete-date[data-day-of-week = "6"]{
    background: #c3d5ff;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "6"]:before{
    background: #7ea8bd;
}

.complete-date[data-day-of-week = "0"]{
    background: #ffc3c3;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "0"]:before{
    background: #bd7e7e;
}



.thumbnail-wrap{
    width: 100%;
    max-width: 100%;
}

.thumbnail-wrap:empty:before{
    content: "";
    font-size: 12px;
}

.thumbnail-wrap img{
    max-width: 100%;
}




.tag-wrap{
    font-size: 10px;
    margin-bottom: .25rem;
}

.tag-wrap .tag{
    border-radius: 20px;
    background: #CCC;
    display: inline-block;
    padding: 1px 10px;
    text-align: center;
}

.tag-wrap .tag--pending{
    background: #F90;
    color: #FFF;
}

.tag-wrap .tag--help-waiting-answer{
    background: #ff7b7b;
    color: #FFF;
}


.tag-wrap .tag--help-waiting-user-accept{
    background: #959595;
    color: #FFF;
}


.tag-wrap .tag--help-waiting-reanswer{
    background: #ff2828;
    color: #FFF;
}


.tag-wrap .tag--help-helped{
    background: #198754;
    color: #FFF;
}


.tag-wrap:empty{
    display: none;
}



/**
 * 教えてほしいボタン関連
 */

[data-current = "help-log"] .q-text,
[data-current = "help-log"] .a-answer-wrap{
    background: #fbfbfb;
    color: #333;
    line-height: 1.75;
}


[data-current = "help-log"] .a-answer-str{
    display: inline-block;
    margin-left: .5rem;
}

[data-current = "help-log"] .a-answer-str.empty{
    font-size: 80%;
    opacity: .5;
    letter-spacing: .05em;
}

[data-current = "help-log"] .q-text{
    position: relative;
/*    max-height: 200px;*/
    transition: all .4s;
    overflow: hidden;
}

[data-current = "help-log"] .q-text:after{
    content: "";
    background: linear-gradient(0deg, #fbfbfb, transparent);
    width: 100%;
    height: 20px;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 1;
    pointer-events: none;
}

[data-current = "help-log"] .q-text.is_open:after{
    display: none;
}

[data-current = "help-log"] .q-text-more{
    width: 100%;
    border: none;
    padding: .25rem;
    font-size: 14px;
    letter-spacing: .05em;
    color: #999;
}

.help-content-user-comment,
.help-content-admin-comment{
    background: #eaeaea;
    color: #333;
    position: relative;
    word-break: break-all;
    font-family: "BIZ UDGothic", sans-serif;
    font-weight: 400;
    font-size: .875rem;
    line-height: 1.7;
    letter-spacing: .03em;
}

.help-content-user-comment{
    border-radius: 10px 10px 10px 0;
}

.help-content-user-comment .good-point-icon{
    animation-delay: .7s;
}

/*.help-content-user-comment[data-status = "9"]:before{
    content: "";
    display: none !important;
}*/

.study-result-icon{
    width: 100%;
}

.study-result-icon:before{
    content: "";
    position: absolute;
    pointer-events: none;
    width: 60px;
    height: 50px;
    right: -10px;
    top: -45px !important;
    display: block;
    background-size: contain;
}

.study-result-icon[data-assignment-type = "1"][data-correct = "0"][data-pending = "0"]:before,
.study-result-icon[data-assignment-type = "2"][data-correct = "0"][data-pending = "0"]:before{
    background: url("../img/common/correct_0.png") no-repeat center center;
    background-size: contain;
}

.study-result-icon[data-correct = "1"]:before{
    background: url("../img/common/correct_1.png") no-repeat center center;
    background-size: contain;
}

.study-result-icon[data-correct = "1"][data-review-challenge = "1"]:before{
    background: url("../img/common/reviewed.png") no-repeat center center;
    background-size: contain;
}

.help-content-user-comment[data-correct = "1"]:before{
    content: "";
    position: absolute;
    pointer-events: none;
    width: 60px;
    height: 50px;
    right: -10px;
    top: -10px;
    display: block;
    background: url("../img/common/correct_1.png") no-repeat center center;
    background-size: contain;
}

.help-content-user-comment[data-correct = "1"][data-is-good = "1"]:before{
    background: url("../img/common/correct_1_good.png") no-repeat center center;
    background-size: contain;
}

.help-content-user-comment[data-correct = "0"][data-ai-correct = "2"][data-pending = "0"]:before{
    content: "";
    position: absolute;
    pointer-events: none;
    width: 60px;
    height: 50px;
    right: -10px;
    top: -10px;
    display: block;
    background: url("../img/common/correct_2.png") no-repeat center center;
    background-size: contain;
}

.help-content-user-comment[data-correct = "0"][data-pending = "0"]:before{
    content: "";
    position: absolute;
    pointer-events: none;
    width: 60px;
    height: 50px;
    right: -10px;
    top: -10px;
    display: block;
    background: url("../img/common/correct_0.png") no-repeat center center;
    background-size: contain;
}

.help-content-user-comment[data-correct = "0"][data-incorrect-status = "9"]:before{
    content: "";
    position: absolute;
    pointer-events: none;
    width: 60px;
    height: 50px;
    right: -10px;
    top: -10px;
    display: block;
    background: url("../img/common/incorrect_9.png") no-repeat center center;
    background-size: contain;
}

.help-content-admin-comment{
    border-radius: 10px 10px 0 10px;
    background: #0d99ff;
    color: #FFF;
}

.help-content-admin-comment textarea{
    width: 100%;
    background: rgb(209 209 209 / 30%);
    box-shadow: inset 1px 1px 3px rgb(11 124 207);
    border: none;
    color: #FFF;
    min-height: 8rem;
    padding: 0.75rem;
    margin: 0 0 5px;
}

.help-content-admin-comment textarea::placeholder{
    color: #FFF;
}

.help-content-admin-btn-wrap svg{
    color: #FFF;
    cursor: pointer;
    width: 24px;
    height: 24px;
}

.help-content-admin-edit-link-wrap{
    line-height: 1;
}

.help-content-admin-edit-link{
    font-size: 12px;
    text-decoration: underline;
    cursor: pointer;
    color: #b3dfff;
}

.help-content-admin-edit-link:hover{
    text-decoration: none;
}

.help-content-user-time,
.help-content-admin-time{
    line-height: 1.25;
    font-size: 10px;
}

.help-content-user-time-str,
.help-content-admin-time-str{
    color: #999;
    display: inline-block;
}

.help-content-admin-img:empty{
    margin-bottom: 0 !important; 
}

.help-content-admin-img img{
    max-width: 100%;
}


.help-content-admin-reedit-wrap{
    display: none;
}


.help-content-waiting-str{
    font-size: 14px;
    color: #999;
}



[data-current = "brain-game"] .q-text,
[data-current = "brain-game"] .a-input-wrap{
    background: #fbfbfb;
    color: #333;
    line-height: 2;
    letter-spacing: .05rem;
}


[data-current = "brain-game"] .next-btn,
[data-current = "brain-game"] .answer-btn{
    background: #0d6efd;
}

[data-current = "brain-game"] .q-text .small{
    font-size: 75%;
    color: #999;
    margin: 0 .25rem 0 0;
}

.question-target{
    font-weight: bold;
    color: #F00;
}


.countdown-timer-wrap{
    position: fixed;
    z-index: 1;
    background: rgb(0 0 0);
    width: 100%;
    padding: .5rem;
    right: 0;
    text-align: center;
    top: 56px;
}

#countdown-timer-str{
    font-size: 26px;
    font-family: "Chivo Mono", monospace;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    letter-spacing: -.03em;
    line-height: 1;
/*    position: fixed;*/
    top: 8px;
    z-index: 1031;
    color: #494949;
    right: 55px;
    left: auto;
    pointer-events: none;
    display: inline-block;
    padding: .25rem;
}

/*
#countdown-timer-str:before {
    content: "制限時間";
    position: absolute;
    left: -70px;
    font-size: 12px;
    top: calc(50% - 6px);
}
*/

.countdown-timer-sum-str{
    font-size: 12px;
}

.memory-target{
    margin-top: 75px;
}

.sho-title{
    margin-bottom: 0.25rem;
    font-weight: bold;
}

[data-pending = "0"][data-correct = "1"] .sho-title:after{
    content: "承認済";
    font-size: 11px;
    display: inline-block;
    line-height: 1;
    padding: 3px 7px;
    border-radius: 10px;
    background: #060;
    color: #FFF;
    margin-left: 5px;
    font-weight: 400;
}

[data-pending = "0"][data-correct = "0"] .sho-title:after{
    content: "再提出";
    font-size: 11px;
    display: inline-block;
    line-height: 1;
    padding: 3px 7px;
    border-radius: 10px;
    background: #C00;
    color: #FFF;
    margin-left: 5px;
    font-weight: 400;
}

.reading--admin [data-pending = "0"][data-correct = "0"] .sho-title:after{
    content: "再提出待ち";
    font-size: 11px;
    display: inline-block;
    line-height: 1;
    padding: 3px 7px;
    border-radius: 10px;
    background: #999;
    color: #FFF;
    margin-left: 5px;
    font-weight: 400;
}

[data-pending = "1"][data-correct = "0"] .sho-title:after{
    content: "採点待ち";
    font-size: 11px;
    display: inline-block;
    line-height: 1;
    padding: 3px 7px;
    border-radius: 10px;
    background: #999;
    color: #FFF;
    margin-left: 5px;
    font-weight: 400;
}

.a-block--self textarea{
/*    border: none;*/
    border-radius: 0 10px 10px 10px;
    padding: 0.75rem;
}

.a-block--admin textarea{
/*    border: none;*/
    border-radius: 10px 0 10px 10px;
    padding: 0.75rem;
}

[data-pending = "0"][data-correct = "0"] .a-block--self textarea{
    border-color: #C00;
    background: #FEE;
}

.q-a-title-wrap{
    line-height: 1.25;
}

.question.q-wrap,
.question.a-wrap{
    display: none;
}

.a-input-textarea{
    width: 100%;
    padding: 0.75rem;
    border: 1px solid #EEE;
}

.large-goal:not(.no-bg){
    color: #fff !important;
    cursor: pointer;
    display: inline-block;
    padding: 0.75rem;
    user-select: none;
/*    background: linear-gradient(315deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%);*/
/*    text-shadow: 1px 1px 0 rgba(0, 0, 0, .2);*/
    text-decoration: none;
}

.large-goal-str:not(.not-designed){
    display: flex;
}

.large-goal-str{
    font-family: "Kaisei HarunoUmi", serif;
    font-weight: 700;
    font-style: normal;
    font-size: clamp(24px, calc(1.5rem + ((1vw - 3.2px) * 5)), 36px);
    line-height: 1;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}

.large-goal.no-bg .large-goal-str{
    font-size: clamp(24px, calc(1.75rem + ((1vw - 3.2px) * 5)), 36px);
}

.large-goal-str .small{
    text-align: center;
    line-height: 1;
    letter-spacing: .15rem;
    font-size: 10px;
    padding: 0 .25rem 0 0;
}

.large-goal-str .bit-small{
    width: 100%;
    font-size: clamp(16px, calc(1rem + ((1vw - 3.2px) * 2.5)), 20px);
    text-align: center;
    line-height: 1;
    letter-spacing: .15rem;    
}

.small-goal-show-trigger{
    font-size: 12px;
}

.small-goal-show-trigger:hover{
    text-decoration: none;
}


.large-goal-modal-wrap{
    width: 100vw;
    height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 20000;
    opacity: 0;
    pointer-events: none;
    transition: all .2s;
}

.large-goal-modal-wrap.show{
    opacity: 1;
    pointer-events: auto;    
}

.large-goal-modal{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    -webkit- transform: translateY(-50%) translateX(-50%);
}



.large-goal-img{
    width: 400px;      /* ① */
    height: 200px;     /* ① */
    object-fit: cover; /* ② */
}


.small-goal-list-wrap{
    background: #FFF;
    color: #333;
    font-family: "Kaisei HarunoUmi", serif;
    font-weight: 700;
    font-style: normal;
    background: url(https://patterns.nanya-kanya.info/img/110318195759.png) repeat;
}

.small-goal-list{
    font-size: clamp(16px, calc(1rem + ((1vw - 3.2px) * 2.5)), 20px);
    text-decoration: none;
}

.reward-link-wrap .reward-link{
    text-decoration: underline;
    display: inline-block;
}


.small-goal-list{
    padding: 0.5rem;
    padding-left: 40px;
    position: relative;
}

.small-goal-list:before{
    content: "";
    width: 24px;
    height: 24px;
    border: 1px solid #a79a9a;
    position: absolute;
    display: block;
    left: 3px;
    top: calc(50% - 12px);
}

.small-goal-curiculum-link{
    text-decoration: none;
    color: #111 !important;
}

.all-time-data-title{
    font-size: 10px;
    letter-spacing: .33rem;
    text-indent: 0.167rem;
    font-family: serif;
    margin-bottom: .125rem;
}


.auto-candidate{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 10px;
    row-gap: 10px;
}




[data-current = "brain-game"] .answer-btn-wrap,
[data-current = "brain-game"] .next-btn-wrap{
    display: flex;
}






.btnshine{
    /*キラッと光る基点とするためrelativeを指定*/
    position: relative;
/*    box-shadow: 2px 2px 10px #ffffff, -2px 2px 10px #ffffff, 2px -2px 10px #ffffff, -2px -2px 10px #ffffff;*/
}


@keyframes shadowSonar {
  0%,100% {
    box-shadow: 1px 1px rgba(255,255,255,.1), 0 0 20px 5px rgba(255,255,255,.4), inset 2px 2px rgba(255,255,255,.1);
  }
  50% {
    box-shadow: 1px 1px rgba(255,255,255,.1), 0 0 0px 0px rgba(255,255,255,.4), inset 2px 2px rgba(255,255,255,.1);
  }
}




.item-shine{
    position: relative;
    overflow: hidden;
}

.item-shine::after {
    content: '';
    position: absolute;
    top: 0;
    left: -75%;
    width: 50%;
    height: 100%;
    background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%);
    transform: skewX(-25deg);
    animation: shine 5s 2s infinite;
}


/*キラッと光る*/
/*.btnshine::before {
    content: '';
    position: absolute;
    top: 0;
    left: -75%;
    width: 50%;
    height: 100%;
    background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%);
    transform: skewX(-25deg);
    animation: shine 5s 2s infinite;
}
*/

@keyframes shine {
    20%,100% {
        left: 125%;
    }
}
.movie-contents-group{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 10px;
    row-gap: 10px;    
}


.iframe-wrap{
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;    
}

.iframe-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 10px;
}

.image-wrap img{
    max-width: 100%;
    border-radius: 5px;
}
.movie-content-caption{
    font-size: 12px;
}


.study-calender-head {
    background: #F0F0F0;
    color: #666;
    position: sticky;
    top: 52px;
    z-index: 10;
}

.study-calender-item{
    font-size: 14px;
    background: #FFF;
    color: #333;
    display: inline-block;
    position: relative;
    border-bottom: 1px solid rgba(0, 0, 0, 0.03);
    padding: .5rem 0;
}

.study-calender-item.sticky{
    position: sticky;
    top: 86px;
    z-index: 2;
}

.study-calender-item.hide{
    display: none !important;
}

.study-calender-item.show--strictly{
    display: flex !important;
}

.study-calender-item.lazy{
    color: #CCC;
}

.study-calender-item.no-study .login-continuity-day-num:not(.level-0),
.study-calender-item.lazy .login-continuity-day-num:not(.level-0){
    display: none;
}

.study-calender-item.lazy .like-link{
    color: #CCC !important;
    text-decoration: none;
}

.study-calender-item.no-study{
    opacity: .9;
    color: #888;
}

.study-calender-item.no-study .like-link{
    color: #888 !important;
    text-decoration: none;
}

.study-calender-item:last-of-type(1){
    border-radius: 0 0 5px 5px;
}

.study-calender-item .rating{
    position: relative;
}

.study-calender-item .name-tag{
    color: #000000;
    display: block;
    font-size: 9px;
    line-height: 1;
    margin-top: 1px;
}

.study-calender-progress,
.study-calender-button{
    font-size: 12px;
}

.study-calender-item .assignment-num.hasPending{
    position: relative;
}

.study-calender-item .assignment-num.hasPending:before{
/*    content: "";
    width: 22px;
    height: 22px;
    background: url(/img/common/approval_request.png) center center no-repeat;
    color: #F00;
    display: block;
    background-size: contain;
    position: absolute;
    top: 1px;*/
}


.study-calender-item[data-complete = "1"]{
    position: relative;
    color: #999;
}

.study-calender-item[data-complete = "1"]:before{
    position: absolute;
    content: attr(data-complete-date-str);
    width: 40px;
    height: 40px;
    border-radius: 20px;
    color: #F00;
    border: 2px solid #F00;
    right: 5px;
    top: 3px;
    font-size: 12px;
    text-align: center;
    display: flex;
    line-height: 1;
    align-content: center;
    justify-content: center;
    align-items: center;
    transform: rotate(-16deg);
}

.study-calender-item{
    user-select: none;
}

.study-calender-item .task-item[data-complete = "1"]{
    text-decoration: line-through;
    color: #CCC;
}

.study-calender-item.today{
    background: #fffae8;
    position: relative;
    padding: .75rem 0 !important;
}

.study-calender-item.today:before{
/*    content: "今日";
    display: inline-block;
    position: absolute;
    left: 2px;
    top: 2px;
    padding: 1px 5px 0px;
    font-size: 10px;
    background: #444;
    color: #FFF;
    border-radius: 11px;*/
}

.study-calender-item--future {
    background: #E0E0E0;
    color: #666;
}

.study-calender-item--future .attend-time{
    transform: scale(.75);
}

.study-calender-login-count{
    background: #ffffff36;
    border-radius: 0px;
    padding: 0px 7px !important;
    transform: skewX(-8deg);
    display: inline-block;
}

.study-calender-login-count.top-kpi-vars[data-ranking="1"],
.study-calender-login-count.top-kpi-vars[data-ranking="2"],
.study-calender-login-count.top-kpi-vars[data-ranking="3"]{
    padding-right: 1.25rem !important;
}

.curriculum-wrap{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 10px;
    row-gap: 10px; 
}


.curriculum-item{
    padding: 0.75rem;
    color: #333;
    background: #FFF;
    border-radius: 8px;
    font-size: 14px;
}


.curriculum-item .image-wrap{
    margin-bottom: 0.5rem;
}


.curriculum-item .curriculum-title{
    font-weight: bold;
    margin-bottom: 0.5rem;
}

.curriculum-item .curriculum-time{
    display: flex;
    align-content: center;
    justify-content: flex-end;
    align-items: center;
}

.curriculum-item:active{
    transform: scale(.98);
}

.curriculum-item .curriculum-time span{
    font-size: 10px;
    background: #DDD;
    border-radius: 15px;
    display: inline-block;
    text-align: center;
    padding: .25rem .5rem;
    color: #333;
    margin-right: 0.25rem;
    line-height: 1;
}


.curriculum-item[data-selected = "1"]{
    background: #F5F5F5;
    position: relative;
}


.curriculum-item[data-selected = "1"]:before{
    content: attr(data-date) " 予約済";
    position: absolute;
    left: 3px;
    top: 4px;
    background: #ffe6c6;
    border-radius: 7px;
    display: inline-block;
    text-align: center;
    padding: .125rem .75rem;
    font-size: 12px;
    color: #333;
}

.curriculum-schedule-modal{
    width: 100vw;
    max-width: 100%;
    height: 100vh;
    opacity: 0;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    pointer-events: none;
    transition: opacity .4s;
}

.curriculum-schedule-modal.show{
    opacity: 1;
    pointer-events: auto;
}

.curriculum-schedule-modal-overlay{
    width: 100%;
    height: 100%;
    background: rgba( 0,0,0, .8 );
    z-index: 1;
    position: absolute;
    top: 0;
    left: 0;
}


.curriculum-schedule-modal-inner{
    padding: 1rem;
    background: #FFF;
    color: #333;
    width: 90%;
    max-width: 340px;
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    border-radius: 10px;
    transform: translateY(-50%) translateX(-50%);
    -webkit- transform: translateY(-50%) translateX(-50%);
}


.curriculum-schedule-modal-inner .image-wrap,
.curriculum-schedule-modal-inner .curriculum-schedule-form-wrap{
    margin-bottom: 0.75rem;
}

.curriculum-schedule-title{
    color: #333;
    font-weight: bold;
    margin-bottom: 0.5rem;
}

.raptime-alert-wrap{
    position: fixed;
    top: 0;
    left: 5vw;
    z-index: 2000000000;
    width: 90vw;
}

.raptime-alert{
    width: 90%;
    text-align: center;
    position: fixed;
    bottom: 50px;
    left: 5%;
/*    transition: top .5s;*/
    padding: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.raptime-alert.show{
    bottom: 50px;
}

.clock-wrap.small-test{
    left: auto;
    right: .75rem;
    transform: translate(0px, 0px);
}



.small-test.correct-animation-wrap .correct-animation{
    font-size: 24px;
    text-align: left;
}

[data-today = "1"]{
    background: #FC0 !important;
    font-weight: 700;
    border-top: 2px solid #000;
    margin-top: 5px;
}

[data-incomplete = "1"]{
    background: #ffd7d7 !important;
}

.btn-tertiary{
    position: relative;
}


.btn-tertiary:before{
    position: absolute;
    content: "完了";
    width: 32px;
    height: 32px;
    border-radius: 20px;
    color: #F00;
    border: 2px solid #F00;
    left: calc(50% - 16px);
    top: calc(50% - 16px);
    font-size: 12px;
    text-align: center;
    display: flex;
    line-height: 1;
    align-content: center;
    justify-content: center;
    align-items: center;
    transform: rotate(-16deg);
}

.attention-wrap{
    padding: .75rem;
    background: #c7c7c7;
    color: #666;
    font-size: 13px;
    margin-bottom: 1rem;
}


.intro-slide-wrap{
    padding: 1rem 0;
    height: calc(100vh - 60px);
}

.intro-slide-container{
    width: ;
}

.intro-slide{
    padding: 2rem;
    margin-bottom: 1rem;
}

.intro-slide-title{
    font-size: 20px;
    text-align: center;
    font-weight: bold;
    margin-bottom: 1rem;
}

.intro-slide-body .image-wrap,
.intro-slide-body .str-wrap{
    margin-bottom: 1rem;
}

.intro-slide-body img{
    max-width: 100%;
}

.required{
    color: #F00;
}

.slick-slide img{
    max-width: 100%;
}

.btn-disable{
    background: #CCC;
    color: #666;
    pointer-events: none;
}

.note-textarea{
    width: 100%;
    min-height: 300px;
    border: 1px solid #CCC;
}

.small-goal-wrap{
    position: relative;
    margin-bottom: 0.25rem;
    padding-left: 1.5rem;
}

.small-goal-wrap:before{
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    background: #DDD;
    width: 1rem;
    height: 100%;
}


.a-candidate-wrap .form-control{
    max-width: 90%;
}

.q-candidate{
    color: #F00;
    background: #fff0b6;
}

.a-candidate-add{
    background: #f5f5f5;
    color: #CCC;
    text-align: center;
    border: 1px solid #CCC;
}

.a-candidate-add:active{
    transform: scale(.98);
}


textarea.answerInput,
.single-answer-item textarea{
    width: 100%;
    min-height: 100px;
    padding: .5rem;

}

.prev-next-btn-wrap{
    width: 480px;
    max-width: 100vw;
    left: auto;
    right: auto;
}


.study-text-answer .point-str-wrap{
    position: relative;
    text-align: center;
/*    transform: rotate(-13deg);*/
    top: -30px;
    opacity: 0;
}

.study-text-answer .point-str{
    font-size: 72px;
    color: #F00;
    display: inline-block;
    line-height: 1;
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    font-weight: 500;
    font-style: normal;
    letter-spacing: -.05em;
}

.study-text-answer .point-str:before{
    content: "";
    width: 100px;
    height: 2px;
    background: #F00;
    display: block;
    position: absolute;
    bottom: 8px;
    left: calc(50% - 48px);
    transform: rotate(-12deg);
}

.study-text-answer .point-str:after{
    content: "";
    width: 100px;
    height: 2px;
    background: #F00;
    display: block;
    position: absolute;
    bottom: 13px;
    left: calc(50% - 48px);
    transform: rotate(350deg);
}


@keyframes bounceIn {
    0%,20%,40%,60%,80%,to {
        -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
        animation-timing-function: cubic-bezier(.215,.61,.355,1)
    }

    0% {
        opacity: 0;
        -webkit-transform: scale3d(.3,.3,.3);
        transform: scale3d(.3,.3,.3)
    }

    20% {
        -webkit-transform: scale3d(1.1,1.1,1.1);
        transform: scale3d(1.1,1.1,1.1)
    }

    40% {
        -webkit-transform: scale3d(.9,.9,.9);
        transform: scale3d(.9,.9,.9)
    }

    60% {
        opacity: 1;
        -webkit-transform: scale3d(1.03,1.03,1.03);
        transform: scale3d(1.03,1.03,1.03)
    }

    80% {
        -webkit-transform: scale3d(.97,.97,.97);
        transform: scale3d(.97,.97,.97)
    }

    to {
        opacity: 1;
        -webkit-transform: scaleX(1);
        transform: scaleX(1)
    }
}

.animate__bounceIn {
    -webkit-animation-duration: 1.25s;
    animation-duration: 1.25s;
    -webkit-animation-name: bounceIn;
    animation-name: bounceIn
}


.point-str-mini{
    position: absolute;
    bottom: -30px;
    right: 30px;
    color: #666;
    font-size: 12px;
}

.ranking-wrap{
    background: #fff6df;
    border: 1px solid #ffdea9;
    padding: .75rem;
}

.ranking-number-str{
    position: relative;
    text-align: center;
    top: 0px;
    line-height: 1;
    user-select: none;
}

.card .ranking-number-str{
    font-size: 12px;
}

.ranking-number-str--child{
    font-size: 64px;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
    margin: 0 .25rem;
    font-family: "Orelega One", serif;
    font-weight: 400;
    font-style: normal;
}

.study-text-answer .ranking-number-str--child{
    opacity: 0;
}

.card .ranking-number-str--child{
    font-size: 28px;
    margin: 0 .125rem;
}

.ranking-number-str--child[data-ranking="1"]{
    color: transparent;
    background: linear-gradient(0deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%); 
    -webkit-background-clip: text;
}


.ranking-number-str--child[data-ranking="2"]{
    color: transparent;
    background: linear-gradient(0deg, #757575 0%, #9E9E9E 45%, #E8E8E8 70%, #9E9E9E 85%, #757575 90% 100%); 
    -webkit-background-clip: text; 
}


.ranking-number-str--child[data-ranking="3"]{
    
}

.ranking-number-str--parent{
    font-size: 22px;
    font-weight: bold;
    line-height: 1;
}

.card .ranking-number-str--parent{
    font-size: 14px;
}

.ranking-number-label{
    font-size: 12px;
    background: #ffcdb4;
    border-radius: 20px;
    text-align: center;
    color: #d55608;
}

.ranking-info-str{
    font-size: 12px;
    color: #999;
}



.result-animation-wrap{
    width: 100vw;
    height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 20000;
    opacity: 1;
    pointer-events: none;
    transition: all .2s;
}

.large-goal-modal-wrap.show{
    opacity: 1;
    pointer-events: auto;    
}

.result-animation-overlay{
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 0;
    background: #FFF;
}

.result-animation-wrap--small-test .result-animation-overlay{
    background: url("../img/small_test/battle_start_bg.png") no-repeat center center;
    background-size: cover;
    color: #FFF;    
}


.result-animation-content{
    width: 100%;
    text-align: center;
    position: absolute;
    z-index: 1;
    color: #333;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    -webkit- transform: translateY(-50%) translateX(-50%);
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 900;
    font-style: normal;
}


.result-animation-content--own{
    margin-bottom: 200px;
}

.result-animation-content--own,
.result-animation-content--enemy{
    text-align: center;
}


.result-animation-content--enemy .animate__animated:nth-of-type(1){
    animation-delay:.2s;
}

.result-animation-content--enemy .animate__animated:nth-of-type(2){
    animation-delay:.4s;
}

.result-animation-content--enemy .animate__animated:nth-of-type(3){
    animation-delay:.6s;
}

.result-animation-content .sub{
    font-size: 20px;
    margin-bottom: 4px;
    background: linear-gradient(#ff8888, #ff5454);
    -webkit-background-clip:text;
    -webkit-text-fill-color: transparent;
}

.result-animation-content .main{
    font-size: 40px;
    background: linear-gradient(#ff8888, #ff5454);
    -webkit-background-clip:text;
    -webkit-text-fill-color: transparent;
}

.result-animation-wrap--small-test .result-animation-content .main,
.result-animation-wrap--small-test .result-animation-content .sub{
    color: #FFF;    
    -webkit-text-fill-color: inherit;
}

.ranking-detail-wrap {
    font-size: 14px;
}

.ranking-detail-list-item[data-self="1"] {
    background: #ff990052;
}


.textarea-wrap[data-correct = "0"],
.textarea-wrap[data-correct = "1"]{
    position: relative;
}


.textarea-wrap[data-correct = "0"]:before{
    content: "";
    background: url(../img/study_answer/ng.png) no-repeat center center;
    background-size: contain;
    position: absolute;
    top: -20px;
    left: -20px;
    width: 40px;
    height: 40px;
}

.textarea-wrap[data-correct = "1"]:before{
    content: "";
    background: url(../img/study_answer/ok.png) no-repeat center center;
    background-size: contain;
    position: absolute;
    top: -20px;
    left: -20px;
    width: 40px;
    height: 40px;
}

.textarea-wrap:has(.match-percentage b:empty):before{
    display: none;
}

.match-percentage:has(b:empty) {
    display: none;
}

.small-test-versus-wrap{
    width: 50%;
    margin: 0 auto;
}



.small-test-versus{
    padding: .25rem;
    margin-bottom: .25rem;
}

.small-test-versus[data-user = "1"]{
    background: #ffefb1;
    border: 1px solid #ebc996;
    color: #916d37;
}

.small-test-versus[data-user = "2"]{
    background: #b1d3ff;
    border: 1px solid #96a4eb;
    color: #375e91;
}

.small-test-versus[data-user = "3"]{
    background: #ffb1bf;
    border: 1px solid #eb9696;
    color: #913757;
}



/**
 * login/intro
 */

.goal-content-wrap{

    width: 480px;
    max-width: 90%;
    margin: 0 auto;
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);

}

.large-goal-image-wrap{
    height: 150px;
}

.large-goal-image-wrap .image-wrap{
    height: 100%;
}

.large-goal-image-wrap img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.large-goal-image-wrap.animate__animated{
    opacity: 0;
    animation-duration: 2s;
}

.large-goal-text-wrap{
    font-size: 14px;
}

.large-goal-text-wrap.animate__animated{
    opacity: 0;
    animation-duration: 2s;
    animation-delay: .5s;
}

.large-goal-text{
    font-family: "Kaisei HarunoUmi", serif;
}

.large-goal-text--small{
    font-size: 75%;
    line-height: 1.1;
}


.large-goal-text--large{
    font-size: 300%;
    line-height: 1.1;
}


.medium-goal-text-wrap.animate__animated{
    opacity: 0;
    animation-duration: 2s;
    animation-delay: 1s;
}

.medium-goal-text{
    font-family: "Kaisei HarunoUmi", serif;
}

.medium-goal-text--small{
    font-size: 75%;
    line-height: 1.1;
}


.medium-goal-item{
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    column-gap: 10px;
    row-gap: 10px;
    padding: 0.5rem;
}

.medium-goal-name { grid-area: 1 / 1 / 2 / 3; }
.medium-goal-progress-wrap { grid-area: 1 / 3 / 2 / 5; }
.medium-goal-progress-percentage { grid-area: 1 / 5 / 2 / 6; }

.medium-goal-item.animate__animated:nth-of-type(1){
    animation-delay: 1.2s;
}

.medium-goal-item.animate__animated:nth-of-type(2){
    animation-delay: 1.4s;
}

.medium-goal-item.animate__animated:nth-of-type(3){
    animation-delay: 1.6s;
}

.medium-goal-item.animate__animated:nth-of-type(4){
    animation-delay: 1.8s;
}

.medium-goal-item.animate__animated:nth-of-type(5){
    animation-delay: 2s;
}

.medium-goal-item.animate__animated:nth-of-type(6){
    animation-delay: 2.2s;
}

.medium-goal-item.animate__animated:nth-of-type(7){
    animation-delay: 2.4s;
}

.medium-goal-item.animate__animated:nth-of-type(8){
    animation-delay: 2.6s;
}


.medium-goal-item[data-is-complete = "1"] .medium-goal-name{
    position: relative;
}

.medium-goal-item[data-is-complete = "1"] .medium-goal-name:before{
    content: "完了";
    font-size: 12px;
    background: #3b9b2a;
    padding: 1px 5px;
    display: inline-block;
    text-align: center;
    margin-right: 5px;
    border-radius: 5px;
}


.fixed-btn-wrap{
    position: fixed;
    bottom: 0px;
    left: 0;
    width: 100%;
}



.time-limit-str{
    font-size: 11px;
    line-height: 1;
    display: inline-block;
}

.study-progress-wrap{
    background: #EEE;
}

.study-progress-start,
.study-progress-goal{
    font-size: 10px;
    line-height: 1;
}

.study-progress-start span,
.study-progress-goal span{
    display: inline-block;
}

.study-progress-item{
    background: #CCC;
    width: 100%;
    height: 2px;
    margin: 0 2px;
    position: relative;
}

.study-progress-item.current{
    background: #060;
    animation: studyProgressCurrent 3s linear 3;
}


@keyframes studyProgressCurrent {
  25%,75% { background-color: #CCC;}
  0%,50% { background-color: #060;}
}

.study-progress-item:before {
    content: "問" attr(data-num);
    color: #fff;
    position: absolute;
    left: calc(50% - 12px);
    bottom: calc(50% - 8px);
    width: 24px;
    height: 16px;
    border-radius: 8px;
    background: #ccc;
    padding: 1px 2px 0px;
    font-size: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.study-progress-item.current:before{
    background: #060;
    animation: studyProgressCurrent 3s linear 3;
}


.btn-gray{
  padding: 1.2em 1.6em;
  font-size: 0.9em;
  background: linear-gradient(180deg, white, #e7e7e7);
  color: #999;
  font-weight: bold;
  text-decoration: none;
  user-select: none;
  border: 1px solid #EEE;
  transition: 0.4s ease;
  letter-spacing: .05rem;
}

.btn-gray.clearTrigger{
    color: #FFF;
    background: linear-gradient(180deg, #9b5c2d, #452e16);
}

.btn-gray.disabled{
    display: none;
    opacity: 0.4;
    pointer-events: none;
}

.js-start-memory-q-trigger{
/*    color: #FFF;
    border: 1px solid #FFF;
    cursor: pointer;
    padding: .5rem;
    text-decoration: none;
    background: #060;
    position: fixed;
    bottom: 0;
    right: 0;
    z-index: 2000;*/
}


.answer-input-wrap{
    position: fixed;
    left: 0;
    width: 100vw;
    max-width: 100vw;
    height: 100px;
    z-index: 1;
    bottom: 42px;
}

.answer-input-wrap:before{
    content: "【" attr(data-answer-input) "】";
    font-size: 14px;
    position: absolute;
    background: #FFF;
    top: -20px;
    left: 0px;
    line-height: 1;
    padding: 3px;
    color: #F00;
}
.answer-input-wrap .answer-input-submit{
    position: absolute;
    color: #39F;
    bottom: 5px;
    right: 5px;
    background: #39F;
    color: #FFF;
    font-size: 14px;
    padding: 2px 10px;
    border-radius: 4px;
}

textarea.answerInput.floating{
    position: fixed;
    width: 100%;
    box-shadow: 0px 5px 20px -6px rgba(0, 0, 0, .3);
    border: 2px solid #FC0;
}


.floating-answer .a-wrap form{
    display: none !important;
}

.talk .confidence-select-wrap{
    display: none !important;
}

.study-log-link-wrap a{
    border-radius: 14px;
    background: #0d6efd;
    color: #FFF;
    text-decoration: none;
    font-size: 12px;
    display: inline-block;
    padding: 4px 10px 4px;
    line-height: 1;    
}


.tab-wrap{
    width: 100%;
    display: flex;
    overflow-x: scroll;
    position: relative;
}

.tab-item{
    padding: 10px 15px;
    min-width: 80px;
    text-align: center;
    background: #FFF;
    color: #333;
    flex-shrink: 0;
    font-size: 12px;
    position: relative;
    margin-right: .125rem;
    border-radius: 5px 5px 0 0;
}

.tab-item.current{
    background: #FC0;
    font-weight: bold;
}

.tab-item:before{
    content: "";
    padding: 3px 8px;
    position: absolute;
    top: 3px;
    left: 3px;
    background: #EEE;
    color: #333;
    font-size: 10px;
    display: inline-block;
    text-align: center;
    display: none;
    border-radius: 10px;
    line-height: 1;
}

.tab-item.little:before{
    content: "あと少し！";
    display: block;
    background: #ff6507;
    color: #FFF;
}


.tab-item.complete:before{
    content: "完了";
    display: block;
    background: #0f9101;
    color: #fff;
}

.list-by-date-wrap{
    position: relative;
}

.dont-study-users-wrap{
    flex-wrap: wrap;
    padding: .5rem .75rem;
    border-radius: 0 0 15px 15px;
}

.dont-study-users-title{
    font-size: 11px;
    width: 100%;
}

.date-str-wrap {
    background: #f1deff;
    font-weight: bold;
    color: #111;
    padding: 0.5rem 1rem;
    border-radius: 5px 5px 0 0;
    margin-bottom: 0 !important;
    position: sticky;
    top: 45px;
    z-index: 2;
    box-shadow: 0 5px 10px -7px rgba(0, 0, 0, .2);
}


.answer-input-length{
    position: absolute;
    bottom: 5px;
    right: 60px;
    color: #333;
    font-size: 12px;
    user-select: none;
    pointer-events: none;    
}

.answer-input-length b{
    font-size: 16px;
}


.gold-str-box{
    font-size: 12px;
    background: #ffffff63;
    display: inline-block;
    width: 100%;
    text-align: center;
    padding: .5rem;
    border-radius: 3px;
}

.gold-str--num{
    display: inline-block;
    font-size: 166%;
    position: relative;
    font-weight: bold;
    padding: 0 0 0 13px;
}

.gold-str--num:before{
    content: "";
    background: url(/img/coin/medium.png) no-repeat left bottom;
    background-size: contain;
    display: block;
    position: absolute;
    width: 20px;
    height: 20px;
    left: -6px;
    bottom: 5px;
}


.group-name{
    font-size: 12px;
}

.data-wrap{
    font-size: 12px;
}

.data-wrap-title span{
    background: #ffffff63;
    color: #333;
    border-radius: 10px;
    padding: 1px 8px;
}

.data-item{
    margin-right: 1rem;
}

.data-item:nth-last-of-type(1){
    margin-right: 0;
}

.data-title{
    margin-right: 0.25rem;
}

.data-item b{
    font-size: 140%;
}

.limit-status{
    background: #39ad1e;
    color: #FFF;
    padding: 1px 5px;
    line-height: 1;
    border-radius: 10px;
}

.limit-status[data-limit-status="1"]{
    background: #39ad1e;
    color: #FFF;    
}

.task-item{
    border-radius: 5px;
}

.data-title,
.data-value{
    display: inline-block;
}

.particles canvas{
    position: absolute;
    top: 0;
    z-index: 1;
}


.making{
    position: relative;
    display: inline-block;
}

.making:after{
    content: "";
    width: 16px;
    height: 16px;
    display: block;
    pointer-events: none;
    position: absolute;
    z-index: 2;
    pointer-events: none;
    background: url(../img/common/making.png) no-repeat center center;
    background-size: contain;
    right: -6px;
    top: -6px;
}


.max-value{
    color: #C00 !important; 
    position: relative;
    display: inline-block;
}

.max-value:after{
    position: absolute;
    width: 16px;
    height: 16px;
    right: -16px;
    bottom: 11px;
    content: url(../img/common/king.png);
}


@keyframes gradient {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}


@keyframes goldenNeon {
    0% {
        box-shadow: 0 0 2.5px #fff, 0 0 5px #fff, 0 0 7.5px #fff, 0 0 10px #c6a900, 0 0 17.5px #c6a900, 0 0 20px #c6a900, 0 0 25px #c6a900, 0 0 37.5px #c6a900;
    }
    100% {
        box-shadow: 0 0 1.25px #fff, 0 0 2.5px #fff, 0 0 3.75px #fff, 0 0 5px #c6a900, 0 0 8.75px #c6a900, 0 0 10px #c6a900, 0 0 12.5px #c6a900, 0 0 18.75px #c6a900;
    }
}


.task-item:nth-of-type(4n-3):before{
    right: 5.5rem !important;
    top: -3px !important;
}


.task-item:nth-of-type(4n-2):before{
    right: 4.5rem !important;
    top: -4px !important;
}

.task-item:nth-of-type(4n-1):before{
    right: 6.25rem !important;
    top: -9px !important;
}

/**
 * 金
 */
.task-item.perfect[data-status = "1"]{
    animation: goldenNeon 1.5s ease-in-out infinite alternate;
}


.task-item.perfect[data-status = "1"]:before{
    content: "";
    width: 105px;
    height: 105px;
    display: block;
    pointer-events: none;
    position: absolute;
    z-index: 2;
    pointer-events: none;
    background: url(../img/task_status/perfect.png) no-repeat center center;
    background-size: contain;
    left: auto;
    right: 5rem;
    top: -5px;
    animation: purun 1s;
    opacity: 0.8;
}

.task-item.perfect[data-status = "1"] .card-body{
    color: #64500a;
    margin-bottom: .5rem;
    border-radius: 5px;
    background: linear-gradient(135deg, #DAAF08 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #DAAF08 90% 100%);
    background-size: 800% 400%;
    animation: gradient 5s infinite cubic-bezier(.62, .28, .23, .99) both;
}



/**
 * 緑
 */
.task-item[data-status = "1"]{
}


.task-item[data-status = "1"]:before{
    content: "";
    width: 105px;
    height: 105px;
    display: block;
    pointer-events: none;
    position: absolute;
    z-index: 2;
    pointer-events: none;
    background: url(../img/task_status/great.png) no-repeat center center;
    background-size: contain;
    left: auto;
    right: 5rem;
    top: -5px;
    animation: purun 1s;
    opacity: 0.8;
}

.task-item[data-status = "1"] .card-body{
    color: #353535;
    border-radius: 5px;
    background: linear-gradient(0deg, rgb(62 183 49) 0%, rgb(170 253 135) 100%);
}

/**
 * 赤
 */
.task-item[data-status = "0"]{

}


.task-item[data-status = "0"]:before{
    content: "";
    width: 105px;
    height: 105px;
    display: block;
    pointer-events: none;
    position: absolute;
    z-index: 2;
    pointer-events: none;
    background: url(../img/task_status/poor.png) no-repeat center center;
    background-size: contain;
    left: auto;
    right: 5rem;
    top: -5px;
    animation: purun 1s;
    opacity: 0.8;
}

.task-item[data-status = "0"] .card-body{
    color: #353535;
    border-radius: 5px;
    background: linear-gradient(0deg, rgb(255 106 106) 0%, rgb(255 179 179) 100%);
}

/**
 * グレー
 */
.task-item[data-status = "9"]{

}


.task-item[data-status = "9"]:before{
    content: "";
    display: none;
}

.task-item[data-status = "9"] .card-body{
    color: #353535;
    background: #EEE;
    border-radius: 5px;
}




.task-item .calender{
    background: transparent;
    border: none;
    font-weight: 700;
    width: 120px;
    color: inherit;
    padding: 0;
    position: relative;
    z-index: 1;
}



.task-item[data-status="1"] .ui-datepicker-trigger{
    display: none;
}



.task-item.fight:after{
    z-index: 1;
    content: "あと少し!";
    position: absolute;
    width: 50px;
    height: 50px;
    border-radius: 25px;
    font-size: 10px;
    text-align: center;
    background: #a30037;
    display: flex;
    justify-content: center;
    align-items: center;
    animation: purun 1s;
    top: -3px;
    left: -4px;
}



.relation-user-item{
    color: #353535;
    background: #EEE;
    border-radius: 5px;
    text-decoration: none;
}



/**
 * 問題登録フォーム
 */
.question-regist-form-wrap label{
    font-size: 14px;
    margin-bottom: .25rem;
    opacity: .7;
    font-weight: 700;
}

.question-regist-form-wrap input::placeholder,
.question-regist-form-wrap textarea::placeholder{
    color: #CCC;
}

.study-text textarea{
    min-height: 4.5rem;
}

.study-text textarea,
.question-regist-form-wrap textarea{
    field-sizing: content;
}

.question-regist-form-wrap .thumbnail-image-wrap.show-loader{
    min-height: 120px;
    position: relative;
}

.question-regist-form-wrap .thumbnail-image-wrap.show-loader::before{
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: rgba(255,255,255,.6) url(../img/common/spinner-loader.gif) no-repeat center center;
    background-size: 100px 100px;
    z-index: 1;
}


.question-regist-form-wrap .upload-time-str{
    font-size: 12px;
}




.icon{
    position: relative;
    padding-left: 1.5rem;
    display: inline-block;
    min-height: 1em;
}

.icon:before{
    min-width: 16px;
    min-height: 16px;
    width: 1em;
    height: 1em;
    top: calc( 50% - 0.5em );
}

.icon-mini{
    padding-left: 1em !important;
}

.icon-mini:before{
    min-width: 1em;
    min-height: 1em;
    width: 1em;
    height: 1em;
    top: calc( 50% - 0.5em );
}

.icon:empty{
    padding-left: 1em;
}

.icon--large{
    position: relative;
    padding-left: 2.5rem;
}

.icon--gold:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/gold.png) no-repeat center center;
    background-size: contain;
}

.icon--gold[data-size = "small"],
.icon--gold[data-size = "medium"],
.icon--gold[data-size = "large"],
.icon--gold[data-size = "small-bonus"],
.icon--gold[data-size = "medium-bonus"],
.icon--gold[data-size = "large-bonus"]{
    padding-left: calc(1.75rem + 2px);
}

.icon--gold[data-size = "small"]:before,
.icon--gold[data-size = "medium"]:before,
.icon--gold[data-size = "large"]:before,
.icon--gold[data-size = "small-bonus"]:before,
.icon--gold[data-size = "medium-bonus"]:before,
.icon--gold[data-size = "large-bonus"]:before{
    min-width: 24px;
    min-height: 24px;
    width: 1.5em;
    height: 1.5em;
    top: calc(50% - .75rem - 0px);
}

.icon--gold[data-size = "small"]:before{
    background: url(../img/coin/small.png) no-repeat center center;
    background-size: contain;    
}

.icon--gold[data-size = "small-bonus"]:before{
    background: url(../img/coin/small_bonus.png) no-repeat center center;
    background-size: contain;
    animation: tada 1.2s 1 ease-out;
    animation-delay: 0s;
}

.icon--gold[data-size = "medium"]:before{
    background: url(../img/coin/medium.png) no-repeat center center;
    background-size: contain;    
}

.icon--gold[data-size = "medium-bonus"]:before{
    background: url(../img/coin/medium_bonus.png) no-repeat center center;
    background-size: contain;
    animation: tada 1.2s 1 ease-out;
}

.icon--gold[data-size = "large"]:before{
    background: url(../img/coin/large.png) no-repeat center center;
    background-size: contain;    
}

.icon--gold[data-size = "large-bonus"]:before{
    background: url(../img/coin/large_bonus.png) no-repeat center center;
    background-size: contain;
    animation: tada 1.2s 1 ease-out;
}

.icon--pending:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/approval_request.png) no-repeat center center;
    background-size: contain;
    width: 30px;
    height: 30px;
    top: calc( 50% - 9px );
}



.icon--pending-small{
    position: relative;
    padding-left: 1.5rem;
    display: inline-block;
    min-height: 1em;
}

.icon--pending-small:before{
    content: "";
    display: block;
    min-width: 20px;
    min-height: 20px;
    width: 1em;
    height: 1em;
    top: calc(50% - 0.5rem);
    background: url(../img/common/approval_request.png) no-repeat center center;
    background-size: contain;
    position: absolute;
    left: 2px;
}

.icon--alert:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/alert.png) no-repeat center center;
    background-size: contain;
}

.icon--alert-large:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/alert-large.png) no-repeat center center;
    background-size: contain;
    width: 24px;
    height: 24px;
    top: calc( 50% - 9px );
}

.header-item .icon--alert-large{
    padding-left: 30px;
}
.header-item .icon--alert-large:before{
    top: 4px;
}

.header-item .icon--pending {
    padding-left: 30px;
}

.header-item .icon--pending:before{
    top: 3px;
}

.header-item .icon--pending[data-pending-num = '0']{
    pointer-events: none;
    cursor: default;
}

.icon--setting-large:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/setting-large.png) no-repeat center center;
    background-size: contain;
    width: 30px;
    height: 30px;
    top: calc( 50% - 9px );
}


.header-item .icon--setting-large{
    padding-left: 30px;
}
.header-item .icon--setting-large:before{
    top: 0;
}

.icon--reviewed:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/icon_reviewed.png) no-repeat center center;
    background-size: contain;    
}

.icon--fuki:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/fuki.png) no-repeat center center;
    background-size: contain;
}

.icon--onepoint:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/onepoint.png) no-repeat center center;
    background-size: contain;
}

.icon--upload:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/upload.png) no-repeat center center;
    background-size: contain;
}

.icon--comment:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/comment.png) no-repeat center center;
    background-size: contain;
}

.icon--sutasapu:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/study_sapuri_icon.png) no-repeat center center;
    background-size: contain;
}

.icon--id:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/icon_id.png) no-repeat center center;
    background-size: contain;
}

.icon--password:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/icon_password.png) no-repeat center center;
    background-size: contain;
}

.icon--emp:empty{
    padding-left: .75rem;
}
.icon--emp:before{
    content: "";
    min-width: 12px;
    min-height: 14px;
    position: absolute;
    left: 0;
    background: url(../img/common/icon_emp.png) no-repeat center center;
    background-size: contain;
}

.icon--fill:empty{
    padding-left: .75rem;
}
.icon--fill:before{
    content: "";
    min-width: 12px;
    min-height: 14px;
    position: absolute;
    left: 0;
    background: url(../img/common/icon_fill.png) no-repeat center center;
    background-size: contain;
}

.icon--check:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/check.png) no-repeat center center;
    background-size: contain;
}

.icon--approval:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/approval_2.png) no-repeat center center;
    background-size: contain;
}

.icon--result:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/result.png) no-repeat center center;
    background-size: contain;
}

.icon--edit:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/edit.png) no-repeat center center;
    background-size: contain;
}

.icon--person:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/person.png) no-repeat center center;
    background-size: contain;
}

.icon--help:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/help.png) no-repeat center center;
    background-size: contain;
}

.icon--mustle:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/icon_mustle.png) no-repeat center center;
    background-size: contain;
}

.icon--battle:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/battle.png) no-repeat center center;
    background-size: contain;
}

.icon--group:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/group.png) no-repeat center center;
    background-size: contain;
}

.icon--reward:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/reward.png) no-repeat center center;
    background-size: contain;
}

.icon--tasks:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/tasks.png) no-repeat center center;
    background-size: contain;
}

.icon--clock:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/clock.png) no-repeat center center;
    background-size: contain;
}

.icon--calender:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/calender.png) no-repeat center center;
    background-size: contain;
}

.icon--lazy:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/lazy.png) no-repeat center center;
    background-size: contain;
}

.icon--company:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/company.png) no-repeat center center;
    background-size: contain;
}

.icon--plus:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/plus.png) no-repeat center center;
    background-size: contain;
}

.icon--plus-large:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/plus-large.png) no-repeat center center;
    background-size: contain;
    width: 48px;
    height: 48px;
    top: calc( 50% - 24px );
}

.icon--correct:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/correct.png) no-repeat center center;
    background-size: contain;
}

.icon--incorrect:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/incorrect.png) no-repeat center center;
    background-size: contain;
}

.icon--youtube:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/icon_youtube.png) no-repeat center center;
    background-size: contain;
}

.icon--other{
    padding-left: 2.5rem;
}
.icon--other:before{
    content: "";
    width: 2.25rem;
    position: absolute;
    left: 0;
    background: url(../img/common/other.png) no-repeat center center;
    background-size: contain;
}

.icon--delete:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/delete.png) no-repeat center center;
    background-size: contain;
}

.icon--back:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/back.png) no-repeat center center;
    background-size: contain;
}

.icon--eye:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/eye.png) no-repeat center center;
    background-size: contain;
}

.icon--camera:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/camera.png) no-repeat center center;
    background-size: contain;
}

.icon--ai:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/ai.png) no-repeat center center;
    background-size: contain;
}

.icon--sumsup:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/sumsup.png) no-repeat center center;
    background-size: contain;
}

.icon--sumsdown:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/sumsdown.png) no-repeat center center;
    background-size: contain;
}

.icon--ki:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/icon_ki.png) no-repeat center center;
    background-size: contain;

}

.icon--zen:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/icon_zen.png) no-repeat center center;
    background-size: contain;
}

.no-text-icon{
    padding-left: 1rem;
    text-indent: -9999px;
}

.no-text-icon:after{
    content: "a";
}




button.like-link{
    border: none;
    background: transparent;
    color: #0d6efd;
    text-decoration: underline;
}

button.like-link:hover{
    text-decoration: none;
}



.btn-result{
    background: #EEE;
    font-size: 18px !important;
    width: 100%;
}

.btn-check:checked + .btn-result--1{
    background: #060;
    box-shadow: none;
    color: #F9F9F9;
    font-weight: bold;
}

.btn-check:checked + .btn-result--0{
    background: #C00;
    box-shadow: none;
    color: #F9F9F9;
    font-weight: bold;
}

.btn-check:checked + .btn-result--9{
    background: #dd7d02;
    box-shadow: none;
    color: #F9F9F9;
    font-weight: bold;
}


.alert-item .alert-date{
    font-size: 12px;
}

.alert-item .alert-added-message{
    padding: .5rem;
    font-size: 12px;
    background: #FFF;
    border: 1px solid #EEE;
}

.status-item span{
    padding: 1px 5px;
    line-height: 1;
    font-size: 14px;
}

.status-item[data-status = "0"] span{
    background: #CC0000;
    color: #FFF;
}
.status-item[data-status = "1"] span{
    background: #060;
    color: #FFF;
}
.status-item[data-status = "9"] span{
    background: #FF9900;
    color: #FFF;
}

.header-pending-num{
    position: relative;
    cursor: pointer;
    display: inline-block;
    display: block;
    height: 100%;
}

.header-pending-num[data-pending-num = "0"]{
    filter: grayscale(100%);
    opacity: .5;
}

.header-pending-num:after{
    content: attr(data-pending-num) "";
    background: #555;
    color: #FFF;
    font-size: 9px;
    font-weight: normal;
    text-align: center;
    display: inline-block;
    position: absolute;
    right: -1px;
    bottom: -2px;
    border-radius: 10px;
    min-width: 17px;
}


.header-alert{
    position: relative;
    cursor: pointer;
}

.header-alert:after{
    content: attr(data-new-alert-num) "";
    background: #F00;
    color: #FFF;
    font-size: 9px;
    font-weight: normal;
    text-align: center;
    display: inline-block;
    position: absolute;
    right: -1px;
    bottom: -2px;
    border-radius: 10px;
    min-width: 17px;
}

.header-alert-wrap{
    display: none;
    position: fixed;
    background: #F9F4E4;
    padding: 1.25rem;
    color: #343330;
    z-index: 1;
    max-width: 470px;
    width: 96vw;
    max-height: 70vh;
    top: 50px;
    overflow-y: scroll;
    right: 2vw;
    border-radius: 2px;
    border-top: 3px solid #c3ab5e;
    box-shadow: 0 10px 20px -10px rgba(0, 0, 0, .4);
}

.header-alert-wrap .alert-item{
    border-bottom: 1px solid #e7e2d1;
}

.header-alert-wrap .alert-item:nth-last-of-type(1){
    border-bottom: none;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important; 
}

.header-alert-wrap .alert-item[data-is-readed = "0"]{
    position: relative;
}

.header-alert-wrap .alert-item[data-is-readed = "0"]:before{
    content: "NEW";
    background: #ff3636;
    color: #FFF;
    font-size: 8px;
    font-weight: bold;
    text-align: center;
    display: inline-block;
    position: absolute;
    left: -5px;
    top: -5px;
    border-radius: 10px;
    min-width: 25px;
}

.header-alert-wrap .alert-date{
    line-height: 1.2;
    opacity: 0.7;
}

.header-alert-wrap .alert-message{
    font-weight: bold;
}

.header-alert-wrap .alert-added-message-showed{
    font-size: 12px;
}



.like-label{
    background: #EEE;
    display: inline-block;
    text-align: center;

}


.user-profile-user-name{
    font-weight: bold;
    font-family: "Noto Sans JP", sans-serif;
}

.user-profile-detail-wrap{
    font-size: .75rem;
    color: #dadada;
}

.task-item-v2{
    padding: 1rem;
    background: #FFF;
    color: #333;
    border-radius: 5px;
    font-size: 14px;
    margin-bottom: 0.5rem;
    background-image: linear-gradient(to top, #e6e9f0 0%, #eef1f5 100%);
    position: relative;
    z-index: 0;
}

.task-item-v2[data-status="1"]{
    background-image: linear-gradient(-20deg, #c1dfc4 0%, #deecdd 100%);
}

.task-item-v2[data-status="0"]{
    background-image: linear-gradient(-20deg, #f794a4 0%, #fdd6bd 100%);
}

.task-item-v2[data-status="1"].platinum{
    background-image: radial-gradient(ellipse farthest-corner at left top, #fff2d0 0%, #FFFFAC 8%, #D1B464 25%, #e7c16c 62.5%, #ffeabb 100%);

}
.task-data-wrap{
}

.task-item-v2 .task-data-wrap:nth-last-of-type(1){
    margin-bottom: 0 !important;
}

.task-data-base{
    display: grid;
    grid-template-columns: 50px auto 70px;
    column-gap: 10px;
    row-gap: 10px;
    align-items: center;
    padding: .751rem;
    background: rgb(255 255 255 / 40%);
    box-shadow: 0 0 8px -4px rgba(0, 0, 0, 0.2);
    border-radius: 4px;
    border: none;
}

.task-data-wrap .num{
    font-size: 1.25rem;
    font-weight: bold;
}

.task-data-wrap .task-data-category{
    font-size: 12px;
}

.task-data-wrap .task-data-name{
    font-size: 18px;
    font-weight: bold;
}

.task-data-rivals-item{
    margin-right: .25rem;
    margin-bottom: .25rem; 
}

.task-data-max-point{
    font-family: serif;
    font-size: 12px;
}

.task-item-v2:before{
    width: 60px;
    height: 60px;
    content: "";
    position: absolute;
    z-index: -1;
    left: -10px;
    top: -10px;
}

/*.task-item-v2[data-status="1"].platinum:before{
    background: url(/img/task_status/perfect.png) no-repeat center center;
    background-size: contain;
}

.task-item-v2[data-status="1"]:before{
    background: url(/img/task_status/great.png) no-repeat center center;
    background-size: contain;
}

.task-item-v2[data-status="0"]:before{
    background: url(/img/task_status/poor.png) no-repeat center center;
    background-size: contain;
}

.task-item-v2[data-status="0"].correct-none:before{
    background: url(/img/task_status/bad.png) no-repeat center center;
    background-size: contain;
}*/

.task-data-max-point{
    text-align: center;
}

.task-data-max-point .num{
    font-family: "Yeseva One", serif;
    font-weight: 400;
}

.task-data-max-point[data-point="100"]{

}




.help{
    cursor: pointer;
    border-radius: 10px;
    padding-left: 25px;
    display: inline-block;
    margin-left: .25rem;
    position: relative;
}

.help:hover{
    background: #DDD;
}


.help:before{
    content: "";
    min-width: 16px;
    min-height: 16px;
    width: 1em;
    height: 1em;
    top: -12px;
    position: absolute;
    left: 5px;
    background: url(../img/common/help.png) no-repeat center center;
    background-size: contain;
}

.approval-date-wrap{
    font-size: 12px;
    color: #777;
}

.send-trigger,
.send-admin-trigger{
    border: none;
}

.send-trigger.loading,
.send-admin-trigger.loading{
    position: relative;
    pointer-events: none;
    z-index: 0;
}

.send-trigger.loading:before,
.send-admin-trigger.loading:before{
    content: "";
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,.9) url("../img/common/spinner-loader.gif") no-repeat center center;
    background-size: contain;
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    z-index: 1;
}



/* リニューアル版 */
#main-timer-wrap{
    text-align: center;
}

#stopwatch1,
#stopwatch3{
    width: 80%;
    max-width: 300px;
    background: #fffefd;
    border-radius: 0 0 15px 15px;
    box-shadow: 0 0 10px -4px rgba(0, 0, 0, 0.24);
    padding: 15px 0;
    position: fixed;
    top: 46px;
    z-index: 1;
    left: 50%;
    transform: translateX(-50%);
}

#stopwatch3{
    z-index: 2;
}

.stopwatch:not(.stopwatch--hidden) .display,
#main-timer {
    font-family: "Roboto Mono", monospace;
    font-size: 26px;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    line-height: 1;
    letter-spacing: -.03em;
    color: #444;
}

.stopwatch.mini .display{
    font-size: 1.25rem;
}

.stopwatch .display.warning {
  color: #FF0000;
  font-weight: bold;
}

.stopwatch .mini-display {
  font-size: 0.75em;
  opacity: 0.75;
  line-height: 1.2;
  margin-top: 2px;
}

.stopwatch--hidden{
    display: none;
}

#sub-timer-wrap{
    text-align: center;
    font-size: 12px;
}

#sub-timer {
    line-height: 1;
    color: #444;
}

.question-num-wrap{
    display: inline-block;
    font-size: 12px;
    line-height: 1;
    padding: 5px 10px;
    background: #757575;
    color: #FFF;
}


#third-timer-wrap{
    display: none;
}


.consult-modal-wrap {
  width: 100%;
  height: 100%;
  color: #FFF;
  position: fixed;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.85);
  overflow: auto;
  opacity: 0;
  visibility: hidden;
  transition: .3s ease-out;
  z-index: 9;
}
 
.consult-modal-wrap.active {
  opacity: 1;
  visibility: visible;
}

.consult-modal-overlay{
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 1;
}
 
.consult-modal-inner {
  width: 100%;
  vertical-align: middle;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit- transform: translateY(-50%) translateX(-50%);
  z-index: 2;
}

.consult-modal-close-trigger-text{
    text-decoration: underline;
    cursor: pointer;
}





.animation-modal-wrap{
  width: 100%;
  height: 100%;
  color: #FFF;
  position: fixed;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.90);
  overflow: auto;
  opacity: 0;
  visibility: hidden;
  transition: .3s ease-out;
  z-index: 10000;
}


.animation-modal-wrap.active{
  opacity: 1;
  visibility: visible;
}


 
.animation-modal-inner{
  width: 100%;
  vertical-align: middle;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit- transform: translateY(-50%) translateX(-50%);
  z-index: 2;
}

.animation-modal-wrap[data-correct="1"]{
  background: rgba(255, 255, 255, 0.95);    
}

.animation-modal-wrap .animation-modal-text{
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 900;
    font-style: normal;
    line-height: 1.1;
}

.animation-modal-wrap[data-correct="0"] .animation-modal-text{
    font-family: "Noto Serif JP", sans-serif;
    font-weight: 400;
}

.animation-modal-wrap[data-correct="1"] .animation-modal-text{
    font-size: 30vw;
    background: linear-gradient(#ff8888, #ff5454);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.animation-modal-wrap[data-correct="0"] .animation-modal-text{
    font-size: 23vw;
    background: linear-gradient(#8897ff, #5471ff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.animation-modal-wrap[data-correct="0"] .animation-modal-obj{
    width: 16px;
    height: 10px;
    position: absolute;
    list-style: none;
    top: -100px;
    border-radius: 0% 70%;
    left: 15%;
    background-color: #c2704e;
    animation: fall 12s linear infinite,
             sway 3.5s ease-in-out infinite alternate;   
}

.js-question-form-connection{
    font-weight: bold;
    color: #C00;
    position: relative;
    display: inline-block;
}

.js-question-form-connection::before{
    content: attr(data-user-answer)"";
    font-size: 10px;
    position: absolute;
    left: 0;
    bottom: -.6rem;
    width: 60vw;
}   


.q-youtube-wrap{
  position: relative;
  width: 100%;
  overflow: hidden;
  padding-bottom: 56.25%;    
}

#q-youtube-iframe{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none; /*境界線の打ち消し*/    
}


.small-question-form-wrap label{
    font-weight: bold;
    position: relative;
}

.small-question-form-wrap .small-question-name{
    display: inline-block;
    position: relative;
}

.answer-disable{
    opacity: 0.6;
}

.answer-disable .small-question-form-wrap label,
.answer-disable .small-question-form-wrap .small-question-form,
body.is-reason-selecting .small-question-form-wrap label,
body.is-reason-selecting .small-question-form-wrap .small-question-form{
    background: #DDD !important;
    pointer-events: none;
    cursor: not-allowed;
}

.answer-able .small-question-form-wrap .small-question-form{
    border: 5px solid #fd7575 !important;
}

.answer-able .small-question-form-wrap .small-question-form.answered{
    border: 1px solid #666 !important;
}


.answer-disable .q-wrap{
    background: #DDD;
}

.answer-disable .js-question-help-trigger{
    display: none;
}

.small-question-form-wrap[data-correct = "0"] .small-question-name:after{
    content: "不正解";
    background-size: 16px 16px;
    background: url(/img/common/incorrect.png) no-repeat;
    height: 1.5rem;
    background-size: contain;
    color: #F00;
    font-size: 16px;
    padding-left: 1.5em;
}

.small-question-form-wrap[data-correct = "1"] .small-question-name:after {
    content: "正解";
    background-size: 16px 16px;
    background: url(/img/common/correct.png) no-repeat;
    height: 1.5rem;
    background-size: contain;
    color: #F00;
    font-size: 16px;
    padding-left: 1.5em;
}

.study-text [data-assignment-type="2"] .small-question-form-wrap{
    position: fixed;
    z-index: 1;
    left: 0;
    bottom: 0;
    margin: 0 !important;
    background: #f7f7f7;
    padding: .75rem;
    width: 100%;
    opacity: 0;
    visibility: hidden;
    transition: .3s ease-out;
    box-shadow: 0 -2px 10px -5px rgba(0, 0, 0, .2);
}

.study-text [data-assignment-type="2"] .small-question-form-wrap.active{
    opacity: 1;
    visibility: visible;
}

.small-question-form-wrap{
    position: relative;
}

.answer-str-length{
    font-size: 12px;
}

.answer-str-length-num {
    font-weight: bold;
    font-size: 133%;
}

.assignment-list-item{
    background: #F5F5F5;
    color: #333;
    border-radius: 5px;
    cursor: pointer;
    position: relative;
}

.assignment-list-item.tmpDisableClass{
    filter: grayscale(1);
    opacity: .75;
    cursor: no-drop;
    pointer-events: none;
}



/**
 * 色分け
 */

.assignment-list-item{
    background: #F5F5F5;
    position: relative;
}

.assignment-list-item[data-status = "0"][data-pending = "1"],
.assignment-list-item[data-status = "1"]{
    background-image: linear-gradient(327deg, rgba(253, 177, 170, 1), rgba(240, 226, 226, 1));
}

.assignment-list-item[data-status = "2"],
.assignment-list-item[data-status = "3"]{
    background-image: linear-gradient(327deg, rgba(171, 253, 170, 1), rgba(227, 240, 226, 1));
}

.assignment-list-item[data-status = "1"]:after{
    width: 4rem;
    height: 4rem;
    content: "";
    display: inline-block;
    position: absolute;
    left: -.5rem;
    top: -1rem;    
    background: url(../img/common/correct_0.png) no-repeat center center;
    background-size: contain;
}

.assignment-list-item[data-status = "1"][data-assignment-type = "3"]:after,
.assignment-list-item[data-status = "1"][data-assignment-type = "4"]:after,
.assignment-list-item[data-status = "1"][data-assignment-type = "5"]:after,
.assignment-list-item[data-status = "1"][data-assignment-type = "6"]:after,
.assignment-list-item[data-status = "1"][data-assignment-type = "7"]:after{
    content: "";
    display: none;
}

.assignment-list-item[data-status = "2"]:after{
    width: 4rem;
    height: 4rem;
    content: "";
    display: inline-block;
    position: absolute;
    left: -.5rem;
    top: -1rem;    
    background: url(../img/common/correct_1.png) no-repeat center center;
    background-size: contain;
}

.assignment-list-item[data-status = "3"]:after{
    width: 4rem;
    height: 4rem;
    content: "";
    display: inline-block;
    position: absolute;
    left: -.5rem;
    top: -1rem;   
    background: url(../img/common/reviewed.png) no-repeat center center;
    background-size: contain;
}

.assignment-list-item[data-weight = "1"]{
    background: #FFF;
    user-select: none;
}

.assignment-list-item[data-weight = "1"] > *:not(.dropdown-wrap){
    filter: grayscale(100%);
    opacity: .33;
}

.assignment-list-item[data-weight = "1"]:before{
    content: "間引いた問題";
    position: absolute;
    top: 0;
    left: -5px;
    background: #0f50ab;
    color: #fff;
    padding: 2px 7px;
    font-size: 12px;
    font-weight: bold;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
    z-index: 1;
}

.assignment-list-item[data-weight = "1"]:after{
    content: "";
    display: none;
}


.assignment-list-item .task-name-wrap{
    padding-left: 2.5rem;
    position: relative;
}

.assignment-list-item .task-name-wrap:before{
    width: 2rem;
    height: 2rem;
    content: "";
    display: inline-block;
    position: absolute;
    background: url(../img/question_regist/type_describe.png) no-repeat center center;
    background-size: contain;
}

.assignment-list-item[data-assignment-type = "1"] .task-name-wrap:before{
    background: url(../img/question_regist/type_describe.png) no-repeat center center;
    background-size: contain;
}

.assignment-list-item[data-assignment-type = "2"] .task-name-wrap:before{
    background: url(../img/question_regist/type_memory.png) no-repeat center center;
    background-size: contain;
}

.assignment-list-item[data-assignment-type = "3"] .task-name-wrap:before{
    background: url(../img/question_regist/type_movie.png) no-repeat center center;
    background-size: contain;
}

.assignment-list-item[data-assignment-type = "4"] .task-name-wrap:before{
    background: url(../img/question_regist/type_sound.png) no-repeat center center;
    background-size: contain;
}

.assignment-list-item[data-assignment-type = "5"] .task-name-wrap:before{
    background: url(../img/question_regist/type_reading.png) no-repeat center center;
    background-size: contain;
}

.assignment-list-item[data-assignment-type="6"] .task-name-wrap:before{
    background: url(../img/question_regist/type_programming.png) no-repeat center center;
    background-size: contain;
}

.assignment-list-item[data-assignment-type="7"] .task-name-wrap:before{
    background: url(../img/question_regist/type_upload.png) no-repeat center center;
    background-size: contain;
}

.dropdown-wrap{
    position: relative;
}


.ajax-wrap{
    position: relative;
}

.ajax-wrap .dropdown,
.assignment-list-item .dropdown{
    position: absolute;
    right: 0px;
    top: -12px;
    z-index: 100;
}

.ajax-wrap .dropdown{
    right: -8px;
    top: -18px;
}

.assignment-list-item[data-weight = "1"] .dropdown .dropdown-item[data-weight = "1"]{
    display: none;
}

.assignment-list-item[data-weight = "5"] .dropdown .dropdown-item[data-weight = "5"]{
    display: none;
}

.dropdown-wrap[data-weight = "1"] .dropdown-item[data-weight = "1"],
.dropdown-wrap[data-weight = "5"] .dropdown-item[data-weight = "5"]{
    display: none;
}

.assignment-list-count-str{
    font-size: .875rem;
    line-height: 1.25;
}

.assignment-list-count-str-num{
    font-size: 1.33rem;
    font-weight: bold;
    display: inline-block;
    margin: 0 .125rem;
}

.assignment-gold-str{
    font-size: .875rem;
    font-weight: bold;
    position: relative;
}

.assignment-list-gold-str-num{
    font-size: 1.16rem;
    font-weight: bold;
    display: inline-block;
    margin: 0 .125rem;
}

.assignment-gold-str .paid-gold-str{
    font-size: 9px;
    position: absolute;
    display: block;
    right: 0;
    bottom: -10px;    
}

.assignment-list-gold-str--active-bonus{
    position: relative;
}

.assignment-list-gold-str--active-bonus:after{
    content: "↑金額アップ";
    width: 9em;
    display: inline-block;
    position: absolute;
    right: -16px;
    top: -17px;
    /* padding: 2px 6px; */
    text-align: right;
    border-radius: 4px;
    color: #b33838;;
    font-size: 11px;
}

@keyframes assignment-list-gold-str--active-bonus-gradient {
  0% {
    background-position: 0% 50%;
  }

  50% {
    background-position: 100% 50%;
  }

  100% {
    background-position: 0% 50%;
  }
}

.assignment-list-detail-wrap{
    border-top: 1px solid rgba(0, 0, 0, .05);
}

.assignment-list-detail-wrap .label{
    font-size: 10px;
    line-height: 1;
    display: inline-block;
    margin-right: 0.25rem;
    padding: 2px 5px 1px;
    background: rgba(0,0,0,.125);
    color: #333;
    text-align: center;
    border-radius: 2px;
}

.assignment-list-detail-wrap .task-progress-str{
    font-size: 1.125rem;
}

.study-timeline-count-wrap,
.sub-category-tab-wrap{
    overflow-x: scroll;
    position: relative;
}

.sub-category-tab-wrap .tab-item{
    text-decoration: none;
    position: relative;
}

.sub-category-tab-wrap .tab-item.mini-tab{
    padding: .375rem .5rem;
    font-size: .625rem;
}


.sub-category-tab-wrap .tab-item .tab-item-team-str{
    position: absolute;
    font-size: 10px;
    top: 5px;
    left: 5px;
    background: #EEE;
    border-radius: 10px;
    padding: 1px 5px;
    line-height: 1;
}

.sort-tab-wrap .sort-tab-item{
    min-width: 50px;
    font-size: 12px;
    padding: 9px 5px;
    line-height: 1.2;
    text-align: center;
    margin-right: .25rem;
    border-radius: 5px;
    background: #FFF;
    color: #333;
    cursor: pointer;
    text-decoration: none;
}

.sort-tab-wrap .sort-tab-item:hover,
.sort-tab-wrap .sort-tab-item.current{
    background: #FC0;
}

.sort-tab-wrap .sort-tab-item.current{
    font-weight: bold;
    position: relative;
    padding-right: 1rem;
}

.sort-tab-wrap .sort-tab-item.current:before{
    background: #000000;
    content: "";
    width: 10px;
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    height: 5px;
    display: block;
    position: absolute;
    right: 5px;
    top: calc(50% - 1.5px);
}

.sort-tab-wrap .sort-tab-item.current[href *= "task_end_date"]:before{
    clip-path: polygon(0 0, 50% 100%, 100% 0);
}

.sort-tab-wrap .sort-tab-item.current[href *= "task_progress"]:before,
.sort-tab-wrap .sort-tab-item.current[href *= "assignment_gold"]:before,
.sort-tab-wrap .sort-tab-item.current[href *= "task_end_date_desc"]:before{
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
}

.sort-tab-wrap .sort-tab-item.current[href *= "task_goal_date"]:before,
.sort-tab-wrap .sort-tab-item.current[href *= "task_progress_asc"]:before,
.sort-tab-wrap .sort-tab-item.current[href *= "assignment_gold_asc"]:before{
    clip-path: polygon(0 0, 50% 100%, 100% 0);
}


.sort-tab-wrap [name="other-sort"]{
    font-size: 12px;
}

.sort-tab-wrap [name="other-sort"]:has(option.current){
    background-color: #FC0;
    border: 1px solid #FC0;
}

.add-assignment-link-wrap a{
    background: #FFF;
    color: #333;
    text-decoration: none;
    border-radius: 2px;
}

.small-question-admin-fuki{
    background: #EEE;
    border-radius: 5px 0 5px 5px;
}


.penalty-setting-form{
    font-size: .75rem;
}

.penalty-setting-form .form-control{
    font-size: .875rem;
}

.penalty-setting-form .form-select{
    font-size: .875rem;
    padding: .375rem 1.25rem .375rem .75rem;
    background-position: right .375rem center;
}


.penalty-setting-form .delete-candidate input,
.penalty-setting-form .delete-candidate select{
    opacity: 0.3;
}

.error-message {
    padding: .25rem .75rem;
    background: #FCC;
    color: #C00;
    display: none;
}

.error-message[data-show = "1"]{
    display: block;
}


.user-reward-image-wrap{
    color: inherit;
    position: relative;
    display: block;
}

.user-reward-image-wrap.label-fusei:before{
    content: "不正";
    width: 3rem;
    aspect-ratio: 1;
    color: #FFF;
    font-weight: bold;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    background: #C00;
    border-radius: 1.5rem;
    z-index: 10;
    right: -5px;
    top: -5px;
    transform: rotate(20deg);
}   

.user-reward-item-title{
    position: absolute;
    z-index: 1;
    top: 15px;
    left: 0px;
    font-weight: bold;
    color: #333;
    background: rgba(255,255,255,.7);
    font-size: 14px;
    padding: .25rem .5rem;
    line-height: 1;
}

[data-need-set = "1"] .user-reward-item-title{
    background: #ef2e2e;
    color: #FFF;
}

.user-reward-item-gold{
    position: absolute;
    z-index: 1;
    bottom: 15px;
    right: 0px;
    font-weight: bold;
    color: #333;
    background: rgba(255,255,255,.7);
    font-size: 14px;
    padding: .25rem .5rem;
    line-height: 1;
}


.user-reward-earned-wrap{
    position: absolute;
    z-index: 1;
    bottom: 5px;
    right: 5px;
    color: #333;
    background: rgba(255, 255, 255, .7);
    font-size: 14px;
    padding: .375rem .75rem;
    border-radius: 4px;
}

.user-reward-earned-wrap b{
    font-size: 150%;
}

.user-reward-item-image{
/*    background: #FFF;*/
    border-radius: 5px;
    height: 100%;
}

.user-reward-item-image img {
    width: 100%;
    max-height: 140px;
    object-fit: cover;
    border-radius: 5px;
}

.f-12-bold-title,
.user-reward-title,
.user-reward-past-title,
.user-goal-title,
.study-calender-title,
.study-timeline-wrap-title{
    font-size: 12px;
    letter-spacing: .05em;
    font-family: "Noto Sans JP";
    font-weight: 700;
}

.sub-category-goal-date{
    font-family: "Noto Sans JP";
    font-weight: 700;
}

.sub-category-start-date{
    color: #999;    
    font-size: 12px;
    font-family: var(--bs-font-sans-serif);
    font-weight: 400;
}

.user-reward-past-item{
    margin: 0.25rem;
    display: block;
    width: 9vw;
    aspect-ratio: 1;
    height: 9vw;
    max-width: 40px;
    max-height: 40px;
}

.user-goal-current-str{
    padding: .75rem;
    background: #f2d12b;
    border-radius: 15px;
    color: #333;
    font-family: "Noto Serif JP";
}


.user-goal-str-date,
.user-goal-str-span{
    font-family: "Noto Serif JP";
    line-height: 1;
    font-size: 14px;
}

.user-goal-str-main{
    font-family: "Noto Serif JP";
    font-size: 2rem;
}

.user-goal-thumbnail img{
    max-width: 100%;
    border-radius: 15px;
}

.user-goal-current-str-sub{
    font-size: 10px;
}

.user-goal-current-str-main{
    font-size: 1.25rem;
    line-height: 1.25;
    font-weight: bold;
}

.user-goal-step-item{
    width: 34px;
    height: 24px;
    display: inline-block;
    background: url("../img/common/goal_step.png");
    position: relative;
}

.user-goal-step-item img{
    position: absolute;
    top: -20px;
    left: 2px;
}

.user-goal-step-item:nth-of-type(2n-1){
    top: 10px;
}

.user-goal-step-item:nth-of-type(2n){
    top: -10px;
}


.user-goal-step-item[data-current = "1"]{
    background: url("../img/common/goal_step_current.png");
}


.pending-scoring-target-icons-title{
    font-size: .875rem;
    font-weight: bold;
}

.pending-scoring-target-icon{
    opacity: 0.3;
    transition: opacity .3s;
}

.pending-scoring-target-icon.active{
    opacity: 1;
}

.pending-scoring-item.hide{
    display: none;
}   

.pending-scoring-item .admin{
    font-size: .75rem;
    line-height: 1;
    position: relative;
}

.pending-scoring-item .admin[data-has-comment = "1"]:before{
    content: "";
    background: url(../img/common/fuki.png) no-repeat center center;
    background-size: contain;
    position: absolute;
    width: 24px;
    height: 24px;
    display: block;
    top: -16px;
    right: 20px;
    z-index: 1;
    animation: purun 1s 1;
}


.study-data-details-wrap.hide{
    display: none;
}

.study-result-link{
    position: relative;
/*    background: #0000000a;*/
    cursor: pointer;
    transition: all .2s;
}

.study-result-link:hover{
    opacity: .9;
}

.study-data-wrap{
    background: #0000000a;    
}

.data-wrap{
    position: relative;
}

.indent .data-wrap{
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.study-result-link[data-is-proficiency-test = "1"] .status-tag-wrap,
.study-result-link[data-is-proficiency-measure = "1"] .status-tag-wrap{
    display: none !important;
}

.study-result-link[data-is-proficiency-test = "1"] .study-data-label{
    font-size: 12px;
    padding: .25rem .5rem;
    background: #198754;
    color: #FFF;
    line-height: 1;
    display: inline-block;
    margin-bottom: 0.5rem;
    border-radius: 3px;
    position: relative;
}

.study-result-link[data-is-proficiency-measure = "1"] .study-data-label{
    font-size: 12px;
    padding: .25rem .5rem;
    background: #FFCC00;
    color: #333;
    line-height: 1;
    display: inline-block;
    margin-bottom: 0.5rem;
    border-radius: 3px;
    position: relative;
}

.indent .study-result-date-str,
.indent .data-time-wrap{
    display: none !important;

}

.study-result-link.indent[data-is-proficiency-test = "1"]{
    border-left: 4px solid #198754;
}

.study-result-link.indent[data-is-proficiency-measure = "1"]{
    border-left: 4px solid #FFCC00;
}

.study-result-link .study-result-is-complete{
    position: absolute;
    right: 0;
    top: 0;
    font-size: .75rem;
}

.study-result-link .study-result-is-complete[data-is-complete = "0"]:before{
    content: "中断";
    color: #FFF;
    background: #C00;
    padding: 1px 5px;
    border-radius: 2px;
}

.study-result-link .study-result-is-complete[data-is-complete = "1"]:before{
    content: "完了";
    color: #FFF;
    background: #060;
    padding: 1px 5px;
    border-radius: 2px;
}

.study-result-date-str{
    color: #666;
    font-size: .75rem;
}

.show-rival-link,
.show-rival-link:hover,
.show-rival-link:active,
.month-change-link,
.month-change-link:hover,
.month-change-link:active{
    color: #FFF;
}


.show-rival-link:hover,
.month-change-link:hover{
    text-decoration: none;
}


form:not(.dummy-form) .attention{
    font-size: .66rem;
    color: #999;
    display: inline-block;
    margin-left: 0.5rem;
    font-weight: normal;
}


.hidden-input-wrap{
    display: none;
}

.hidden-input-wrap.show{
    display: block;
}

.reward-edit-link-wrap:nth-of-type(2n-1){
    padding-right: .25rem;
}

.reward-edit-link-wrap:nth-of-type(2n){
    padding-left: .25rem;
}

.reward-edit-link{
    width: 100%;
    aspect-ratio: 1;
    position: relative;
}

.reward-edit-link img{
    border-radius: 5px;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.question-regist-link{
    background: #FFF;
    border-radius: 15px;
    border: 1px solid #EEE;
}

.question-regist-sample-str{
    font-size: 0.625rem;
}


.describe-input{
    display: none;
}

.describe-input.show{
    display: block;
}

.preview-title,
.assignment-type-title{
    position: relative;
    z-index: 0;
}

.assignment-type-title:before{
    width: 2rem;
    height: 2rem;
    top: calc( 50% - 1.5rem );
    content: "";
    display: inline-block;
}

.assignment-type-title[data-assignment-type = "1"]:before{
    background: url(../img/question_regist/type_describe.png) no-repeat center center;
    background-size: contain;
}

.assignment-type-title[data-assignment-type = "2"]:before{
    background: url(../img/question_regist/type_memory.png) no-repeat center center;
    background-size: contain;
}

.assignment-type-title[data-assignment-type = "3"]:before{
    background: url(../img/question_regist/type_movie.png) no-repeat center center;
    background-size: contain;
}

.assignment-type-title[data-assignment-type = "4"]:before{
    background: url(../img/question_regist/type_sound.png) no-repeat center center;
    background-size: contain;
}

.assignment-type-title[data-assignment-type = "5"]:before{
    background: url(../img/question_regist/type_reading.png) no-repeat center center;
    background-size: contain;
}

.assignment-type-title[data-assignment-type = "6"]:before{
    background: url(../img/question_regist/type_programming.png) no-repeat center center;
    background-size: contain;
}

.assignment-type-title[data-assignment-type = "7"]:before{
    background: url(../img/question_regist/type_upload.png) no-repeat center center;
    background-size: contain;
}

.preview-title:after{
    content: "プレビュー";
    position: absolute;
    left: 0;
    top: -20px;
    color: rgba(0, 0, 0, .1);
    font-size: 3rem;
    z-index: -1;
}

.preview .small-question-form-wrap{
    display: none;
}

.preview .ajax-btn-wrap{
    display: none !important;
}

.preview .js-small-question-submit{
    pointer-events: none;
    opacity: 0.4;
}


/**
 * sortable
 */
.sortable-item .inner{
    position: relative;
}

.sortable-item .handle{
    width: 40px;
    height: calc(100% + 2rem);
    position: absolute;
    left: -3.5rem;
    top: -1rem;
    background: #666;
    display: block;
    border-radius: 15px 0 0 15px;
    background-image: url(../img/common/handle.png);
    background-size: 30px 30px;
    background-position: center center;
    background-repeat: no-repeat;
    cursor: move;
}

.sortable-item{
    padding-left: 3.5rem;
    margin-bottom: 0.25rem;
}

.valid-assignments,
.invalid-assignments{
    padding: 1rem;
    margin-bottom: 1.5rem;
}

.valid-assignments{
    background: #FC0;
    border-radius: 15px;
}

.invalid-assignments{
    background: rgba(255, 255, 255, 0.2);
    border-radius: 15px;
}

.invalid-assignments:blank{
}

.invalid-assignments:blank:after{
    content: "全て表示しています。";
    color: #FFF;
}

#sortableArea01 .ui-state-highlight,
#sortableArea02 .ui-state-highlight {
    height: 4em;
    border: dotted 3px #0000ff;
    border-radius: 15px;
    margin-bottom: 0.25rem;
}

.alert-label{
    font-size: 80%;
    background: #CCC;
    border-radius: 15px;
    padding: 1px 10px;
    color: #FFF;
    display: inline-block;
}

.alert-dotted{
    color: #7f7f7f;
    background-color: #f5f5f5;
    border-color: #dddddd;
    border: 1px dotted #CCC;
    border-radius: 0px;
    padding: .5rem .75rem;
}

.prev-question-trigger{
    background-image: url(../img/common/prev_w.png);
    background-repeat: no-repeat;
    background-position: center left 2px;
}

.next-question-trigger{
    background-image: url(../img/common/next_w.png);
    background-repeat: no-repeat;
    background-position: center right 2px;
}

.small-question-file-input-wrap{
    display: none;
}

.small-question-file-input-wrap.show{
    display: block;
}


.small-question-file-input-wrap .file-wrap{
    color: #999;
    font-size: .75rem;
}

.small-question-file-input-wrap .file-wrap a{
    color: #999;
}

.small-question-admin-comment-wrap{
    background: #f9ebe3;
    border-radius: 5px;
    box-shadow: inset 1px 1px 4px rgb(247 84 56 / 10%);
}

.small-question-admin-comment-title{
    font-weight: bold;
    font-size: 0.875rem;
}

.small-question-admin-comment-body{
    font-size: 0.75rem;
}

.kari-modal-wrap,
.houby-modal-wrap,
.contact-form-modal-wrap,
.help-form-modal-wrap,
.ajax-loader-wrap{
    color: #333;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
    display: none;
}

.kari-modal-wrap.show,
.houby-modal-wrap.show,
.contact-form-modal-wrap.show,
.help-form-modal-wrap.show,
.ajax-loader-wrap.show{
    z-index: 9999;
    pointer-events: auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

.kari-modal-wrap.show{
    pointer-events: none;
}

.kari-modal-overlay,
.houby-modal-overlay,
.pending-modal-overlay,
.ajax-loader-overlay,
.contact-form-modal-overlay,
.help-form-modal-overlay{
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.4);
    z-index: 0;
}

.kari-modal-overlay{
    pointer-events:none;    
}

.kari-modal-inner{
    color: #FFF;
    z-index: 1;
    font-size: 72px;
    font-weight: 700;
    pointer-events:none;
}

.houby-modal-inner,
.pending-modal-inner,
.contact-form-modal-inner,
.help-form-modal-inner{
    width: 90%;
    max-width: 400px;
    position: absolute;
    background: #FFF;
    border-radius: 15px;
    box-shadow: 0 10px 15px -5px rgba(0,0,0,.2);
    z-index: 1;
}

.ajax-loader-inner{
    width: 65px;
    height: 30px;
    position: relative;
}

.ajax-loader-inner:before {
    content: "";
    position: absolute;
    border-radius: 50px;
    box-shadow: 0 0 0 3px inset #fff;
    animation: l3 0.75s infinite alternate;
}

@keyframes l3 {
  0% {
    inset: 0 35px 0 0;
  }
  50% {
    inset: 0 0 0 0;
  }
  100% {
    inset: 0 0 0 35px;
  }
}


.timer{
/*    position: sticky;
    top: 46px;
    left: 0;
    background: #fffaf4;
    z-index: 1;*/
}

.preview .timer{
    display: none;
}

.suspend-trigger{
    position: fixed;
    left: 20px;
    top: 58px;
    font-size: 12px;
    z-index: 2;
}

.like-link{
    text-decoration: underline;
    color: #0d6efd;
    cursor: pointer;
}

.like-link:hover{
    text-decoration: none;
}


.scoring-btn:not(.selected){
    background: #e1e1e1;
    color: #ababab;
    transition: all .2s;
}

.scoring-form-wrap{
    background: #fff3e5;
    color: #666;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 5px;
}

.scoring-btn{
    font-size: 0.875rem;
    display: flex;
    justify-content: center;
    align-items: center;
}

.scoring-btn[data-correct = "1"]:hover,
.scoring-btn[data-correct = "1"].selected{
    background: #4EC61C;
    color: #FFF;
}

.scoring-btn[data-correct = "1"][data-good = "1"]{
    position: relative;
    height: 48px;
    background-image: url("../img/common/goodBtn_g.png");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
}

.scoring-btn[data-correct = "1"][data-good = "1"]:hover,
.scoring-btn[data-correct = "1"][data-good = "1"].selected{
    background: #fe0505;
    color: #FFF;
    background-image: url("../img/common/goodBtn.png");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
}



.scoring-btn[data-correct = "0"]:hover,
.scoring-btn[data-correct = "0"].selected{
    background: #FD1E86;
    color: #333;
}

.status-label{
    display: inline-block;
}

.status-label:before{
    font-size: 14px;
    line-height: 1;
    padding: .25rem .5rem;
    display: inline-block;
    border-radius: 2px;
}

.status-label[data-type = "0"]:before{
    content: "";
    display: none;
}

.status-label[data-type = "1"]:before{
    content: "承認済";
    background: #4EC61C;
    color: #FFF;
    margin-right: .25rem;
}

.status-label[data-type = "1"][data-assignment-type = "1"]:before,
.status-label[data-type = "1"][data-assignment-type = "2"]:before{
    content: "正解";
}

.status-label[data-type = "2"]:before{
    content: "未完了";
    background: #DDD;
    color: #333;
    margin-right: .25rem;
}

.status-label[data-type = "2"][data-assignment-type = "1"]:before,
.status-label[data-type = "2"][data-assignment-type = "2"]:before{
    content: "未完了";
}

.status-label[data-type = "3"]:before{
    content: "承認願";
    background: #FD1E86;
    color: #FFF;
    margin-right: .25rem;
}

.status-label[data-type = "4"]:before{
    content: "途中";
    background: #ddd;
    color: #111;
    margin-right: .25rem;
}


.login-continuity-day-num {
    font-size: 9px;
    background: #373737;
    display: inline-block;
    line-height: 1;
    padding: 2px 5px;
    border-radius: 10px;
    color: #FFF;
    position: absolute;
    top: -5px;
    left: calc(50% - 25px);
}

.login-continuity-day-num.level-2{
    background: #ff5151;
}

.task-goal-date-inner{
    position: relative;
}

.task-goal-date-calender{
    width: 110px;
    border: none;
    background: transparent;
    cursor: pointer;
}

.task-goal-date-calender.over--red{
    color: #F00;
    font-weight: bold;
}

.task-goal-date-calender.over--orange{
    color: #F90;
    font-weight: bold;
}

.latest-selected-task{
    background: #FC0 !important;
}

.assignment-list-item .ui-datepicker-trigger{
    width: 16px;
}

.good-icon-trigger{
    cursor: pointer;
    transition: all .2s ease-in-out;
    display: inline-block;
}

.good-icon-trigger[data-active = "0"]{
    filter: grayscale(100%);
    opacity: 0.5;
}

.good-icon-trigger:hover,
.good-icon-trigger[data-active = "1"]{
    opacity: 1;
    filter: grayscale(0);
}

.good-icon-trigger:hover{
    transform: scale(1.2);
}

.good-point-icon{
    position: absolute;
    right: -12px;
    top: -12px;
    transform: rotate;
}

.good-point-icon[data-show = "0"]{
    display: none;
}

.good-point-icon[data-show = "1"]{
    display: block;
}

.good-point-icon img{
    display: inline-block;
    transform: rotate(10deg);
}

.user-reward a{
    color: #FFF;
}

.user-reward .square{
    width: 100%;
    aspect-ratio: 1;
}

span.late-time-str {
    position: absolute;
    bottom: 5px;
    color: #C00;
}

.task-group-wrap{
    border-radius: 0;
    border-bottom: 1px solid #CCC;
}

.task-group-wrap.need-help-icon{
    position: relative;
}

.task-group-wrap.need-help-icon:not(.indent) .study-result-link{
    background: #ffa5ad;
}

.task-group-wrap.need-help-icon:not(.indent) .study-result-link:before{
    content: "教えてほしい";
    display: inline-block;
    color: #FFF;
    background: #F00;
    font-weight: bold;
    font-size: 0.75rem;
    position: absolute;
    bottom: 8px;
    left: .5rem;
    line-height: 1;
    padding: .25rem;
    font-size: .625rem;
    border-radius: 10px;
}

.task-group-wrap[data-is-exam="1"]{
    background: #fff6d4;
}

.task-group-wrap[data-is-exam="1"] .study-result-link{
    background: #ffeba0;
    position: relative;
}

.task-group-wrap.indent{
    width: calc( 100% - 1.75rem );
    margin-left: 1.75rem;
}

.attend-late-minute{
    color: #999;
    font-size: 9px;
    position: absolute;
    bottom: -7px;
    right: 0;
    font-weight: normal;
}

.reward-image-wrap img{
    width: 100%;
    height: 250px;
    object-fit: cover;
    border-radius: 5px;    
}


[data-current="reward"] .price-str{
    font-size: 1.25rem;
}


.setting-attention{
    font-size: 0.75em;
    color: #666;
    letter-spacing: .05em;
    line-height: 1.625;
}

.user-reward-item-image.sonar:after{
    background: #FFF;
}

.header-reward-data-wrap{
    padding-left: .25rem;
    padding-right: .25rem;
    border-radius: 2px;
    position: relative;
}

.header-reward-data-tooltip{
    background: #498330;
    border-radius: 10px;
    font-size: 10px;
    display: inline-block;
    padding: 1px 5px;
    position: absolute;
    right: 20px;
    top: -6px;
}


.header-reward-data-wrap:after{
    background: #FC0;
    animation-duration: 1.5s;
}

.header-reward-data b{
    display: inline-block;
    transition: transform .15s ease-in-out;
}
.header-reward-data b.large{
    transform:scale(1.5);
}

.earned-log-wrap table{
    color: #FFF;
}

.earnable-action{
    position: relative;
}

.earnable-action:before{
    content: "";
    background: url(../img/gif/coin.gif) no-repeat center center;
    width: 20px;
    height: 20px;
    background-size: contain;
    display: inline-block;
    right: 10px;
    top: calc(50% - 10px);
    position: absolute;
}

.earnable-action.no-absolute:before{
    position: relative;
    margin-right: 5px;
    top: 3px;
    left: 0;
}

.slidedown-message-wrap{
    background: #FFF url(../img/gif/coin.gif) no-repeat center top 14px;
    width: calc(100vw - 1.5rem);
    max-width: 480px;
    position: fixed;
    top: calc(46px + .75rem);
    font-size: 14px;
    z-index: 9999;
    transition: all .4s ease-in-out;
    border: none;
    background-color: #FFF;
    box-shadow: 0 10px 15px -5px rgba(0, 0, 0, .4);
    color: #333;
    padding: 70px 1.5rem 1.5rem;
    border-radius: 10px;
    text-align: center;
    display: none;
}

@media screen and (max-width: 480px) {
.slidedown-message-wrap{
    left: .75rem;
}       
}

.slidedown-message-wrap.show{
    display: block;
}

.header-reward-data{
    text-decoration: none;
}

.weekly-vars-table th,
.weekly-vars-table td{
    min-width: 100px;
    font-size: 1rem;
    vertical-align: middle;
    text-align: center;
    padding: .5rem 4px;
}

.weekly-vars-table th{
    font-size: 0.75rem;
}

.weekly-vars-date-str{
    font-weight: bold;
    margin-top: 2px;
    background: #505050;
    color: #FFF;
}

.weekly-vars-table .unit-str{
    font-size: .625rem;
}

.weekly-vars-complete-rate[data-value="100"]{
    font-weight: bold;
    color: #060;
}

.weekly-vars-pending-answer-num{
    color: #C00;
    font-weight: bold;
}

.weekly-vars-pending-answer-num[data-num="0"]{
    color: #000;
    font-weight: normal;
}

.weekly-vars-table thead th,
.weekly-vars-table tbody tr{
    background: #FFF;
}

tr.own-tr td{
    background: #FC0 !important;
}

/**
 * custom
 */

.tablesorter-default{
    margin-top: 0;
    font: inherit;
}
.tablesorter-metro-dark .tablesorter-header-inner{
    padding-left: 0;
}

.tablesorter-default th, .tablesorter-default thead td{
    background-color: #F0F0F0;
    color: #666;
    font-weight: bold;
    border-bottom: none;
    line-height: 1.25;
}

.tablesorter-default .header,
.tablesorter-default .tablesorter-header{
    padding: 4px 10px 4px 10px;
}

.tablesorter-default td{
    border-bottom: none;
}

.js-pending-redirect-trigger{
    text-decoration: underline;
    cursor: pointer;
}

.js-pending-redirect-trigger[data-num = "0"]{
    text-decoration: none;
    cursor: default;
}

.sample-string{
    padding-left: 2em;
    font-size: 12px;
}

.rating{
    position: relative;
}


.rating:before{
    width: 15px;
    height: 15px;
    text-align: center;
    display: inline-block;
    content: "";
    position: absolute;
    z-index: 0;
    left: 5px;
    top: 0;
    font-size: 10px;
    color: #333;
    border-radius: 10px;
    padding: 0 2px;
}

.sample-string .rating:before{
    left: -2em;
}

.rating[data-rest-day = "1"][data-study-done = "0"]:before{
    content: "休";
    background: #777;
    color: #FFF;
}

.rating[data-rest-day = "1"][data-study-done = "1"]:before{
    content: "優";
    background: #ff0000;
    color: #FFF;
}

.rating[data-rest-day = "0"][data-study-done = "0"]:before{
    content: "サ";
    background: #62328e;
    color: #FFF;
}




/* study-timeline */


.study-timeline-userimage-wrap[data-timeline-num]{
    position: relative;
}

.study-timeline-userimage-wrap[data-timeline-num]:after{
    content: attr(data-timeline-num) "";
    background: #112033;
    color: #FFF;
    font-size: 10px;
    font-weight: normal;
    text-align: center;
    display: inline-block;
    position: absolute;
    right: -3px;
    bottom: -6px;
    border-radius: 12px;
    min-width: 20px;
    pointer-events: none;
}

.study-timeline-userimage-wrap[data-timeline-num]:nth-of-type(1):after{
    background: #ffe082;
    color: #333;
}

.study-timeline-userimage-wrap[data-timeline-num]:nth-of-type(1):before,
.study-timeline-userimage-wrap[data-timeline-num]:nth-of-type(2):before,
.study-timeline-userimage-wrap[data-timeline-num]:nth-of-type(3):before{
    width: 24px;
    height: 24px;
    content: "";
    position: absolute;
    left: -8px;
    top: -2px;
    background: url(../img/common/rank_1.png) no-repeat center center;
    background-size: contain;
    pointer-events: none;
}

.study-timeline-userimage-wrap[data-timeline-num]:nth-of-type(2):after{
    background: #b6bde3;
    color: #111;
}

.study-timeline-userimage-wrap[data-timeline-num]:nth-of-type(2):before{
    background: url(../img/common/rank_2.png) no-repeat center center;
    background-size: contain;
}

.study-timeline-userimage-wrap[data-timeline-num]:nth-of-type(3):after{
    background: #c09f8e;
    color: #111;
}

.study-timeline-userimage-wrap[data-timeline-num]:nth-of-type(3):before{
    background: url(../img/common/rank_3.png) no-repeat center center;
    background-size: contain;
}

.study-timeline-item{
    background: #ffffff0d;
    margin-bottom: .5rem;
    border-radius: 5px;
    padding: 1rem !important;
    box-shadow: 2px 8px 12px -6px rgba(0, 0, 0, .1);
}

.study-timeline-item[data-icon-name="selfGoodPoint"]{
    background: #ffee8c26;
}

.study-timeline-dateinfo{
    font-size: 0.75rem;
    color: #ddd;
}

.study-timeline-userinfo a{
    text-decoration: none !important;
    color: #FFF !important;
}

.study-timeline-username{
    font-weight: 700;
    font-family: "Noto Sans JP";
    font-size: 0.75rem;
}

.study-timeline-userimage{
    width: 32px;
    aspect-ratio: 1;    
}

.study-timeline-contentimage-wrap img{
    width: 100%;
    max-width: 100%;
    max-height: 200px;
    object-fit: cover;
    border-radius: 5px;
}

.study-timeline-contentimage-wrap img:active{
}

.study-timeline-contentlabel{
    font-size: 0.75rem;
    background: rgb(255 255 255 / 17%);
    border-radius: 2px;
    padding: 3px 6px;
    line-height: 1;
    display: inline-block;
}

.study-timeline-item[data-type="answerData"] .study-timeline-contents{
    cursor: pointer;
}

/*.study-timeline-item[data-type="brainmap"] {
    background: #361d17;
}*/

.study-timeline-contentstr{
    font-size: 0.75rem;
    letter-spacing: .05em;
    line-height: 1.75;
}

.study-timeline-contentstr-lead{
    padding-left: 0;
    position: relative;
}

.study-timeline-contentstr-lead[data-pending = "1"],
.study-timeline-contentstr-lead[data-correct = "1"],
.study-timeline-contentstr-lead[data-suspending = "1"]{
    padding-left: 1.75rem;
    position: relative;
}

.study-timeline-contentstr-lead:before{
    content: "";
    position: absolute;
    left: 0;
/*    background: url(../img/common/remand_2.png) no-repeat center center;*/
    background-size: contain;
    min-width: 24px;
    min-height: 24px;
    width: 1.5em;
    height: 1.5em;
    top: calc(50% - .75rem);      
}

.good-comment-wrap{
    position: relative;
    font-size: 2.5em;
    font-weight: bold;
    line-height: 1.25;
    font-family: "Noto Sans JP";
}

.study-timeline-item[data-icon-name="goodPoint"] .good-comment-wrap:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/goodPoint.png) no-repeat center center;
    background-size: contain;
    width: 24px;
    height: 24px;
    /* width: 1.5em; */
    /* height: 1.5em; */
    top: -4px;
    left: -12px;  
}

.study-timeline-item[data-icon-name="selfGoodPoint"] .good-comment-wrap:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/selfGoodPoint.png) no-repeat center center;
    background-size: contain;
    width: 24px;
    height: 24px;
    /* width: 1.5em; */
    /* height: 1.5em; */
    top: -4px;
    left: -12px;  
}

.study-timeline-contentstr-lead[data-good = "1"]{
    padding-left: 0;
}
.study-timeline-contentstr-lead[data-good = "1"]:before{
    content  :"";
    display: none;
}
.study-timeline-contentstr-lead[data-pending = "1"]:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/approval_request.png) no-repeat center center;
    background-size: contain;
    min-width: 24px;
    min-height: 24px;
    width: 1.5em;
    height: 1.5em;
    top: calc(50% - .75rem);    
}

.study-timeline-contentstr-lead[data-correct = "1"]:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/approval.png) no-repeat center center;
    background-size: contain;
    min-width: 24px;
    min-height: 24px;
    width: 1.5em;
    height: 1.5em;
    top: calc(50% - .75rem);
}

.study-timeline-contentstr-lead[data-suspending = "1"]:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/suspending.png) no-repeat center center;
    background-size: contain;
    min-width: 24px;
    min-height: 24px;
    width: 1.5em;
    height: 1.5em;
    top: calc(50% - .75rem);
}

.study-timeline-contentstr-score{
    font-size: 1rem;
    font-weight: bold;
    font-family: "Noto Sans JP";
}

.study-timeline-contentstr-score .denom{
    font-size: 0.75rem;
}

.study-timeline-watchimpression{
    position: relative;
}

.study-timeline-watchimpression:before{
    content: "見た人";
    font-size: 0.625rem;
    color: #CCC;
    line-height: 1;
    display: flex;
    align-content: center;
    justify-content: center;
    display: block;
    margin-right: 0.2em;
}

.study-timeline-watchimpressionimage{
    width: 24px;
    aspect-ratio: 1;
}

.study-timeline-likeimpression{
    cursor: pointer;
}

.study-timeline-likeimpression-count{
    font-size: 1rem;
    font-family: "Arial";
    font-weight: bold;
}

.study-timeline-watchimpressionimage-wrap.tippy-cont{
    position: relative;
}

.study-timeline-watchimpressionimage-wrap.tippy-cont:before{
    content: "";
    position: absolute;
    left: -4px;
    background: url(../img/common/heart.png) no-repeat center center;
    background-size: contain;
    min-width: 12px;
    min-height: 12px;
    width: .75em;
    height: .75em;
    top: -2px; 
}


.study-timeline .load-more-items-trigger{
    text-align: center;
    font-size: 14px;
    color: #BBB;
    cursor: pointer;
    transition: all .3s;
    font-family: "Noto Sans JP";
}

.study-timeline .load-more-items-trigger:hover{
    color: #FFF;
}

.study-timeline .study-timeline-login-continuity-day-num{
    font-weight: normal;
    font-family: var(--bs-font-sans-serif);
    background: #0b111a;
    color: #ffffff;
    padding: 0px 5px;
    border-radius: 0px;
    font-size: 11px;
    transform: skewX(-10deg);
    display: inline-block;
}

.study-timeline .study-timeline-login-continuity-day-num[data-num="0"],
.study-timeline .study-timeline-login-continuity-day-num[data-num="1"],
.study-timeline .study-timeline-login-continuity-day-num[data-num="2"]{
    display: none;
}

.study-timeline-userimage-wrap{
    position: relative;
}

.study-timeline-item[data-type="answerData"] .study-timeline-good-from-userimage-wrap{
    display: none;
}

.study-timeline .study-timeline-good-from-userimage-wrap{
    margin: 0 1px 0 0;
    display: inline-block;
    vertical-align: bottom;
    position: relative;
}

.study-timeline .study-timeline-good-from-userimage-wrap:after{
    content: "";
    width: 12px;
    height: 12px;
    display: block;
    position: absolute;
    right: -4px;
    bottom: -4px;
    background: url("../img/common/arrow.png") no-repeat center center;
    background-size: contain;
}

.study-timeline .study-timeline-good-from-userimage-wrap .study-timeline-userimage{
    width: 20px;
}

.study-timeline-parent-node{
    padding: .25rem .5rem;
    background: rgba(0,0,0,.5);
    position: relative;
}

.study-timeline-parent-node:after{
    content: "親ノード";
    font-size: 9px;
    line-height: 1;
    right: 5px;
    bottom: 5px;
    color: #CCC;
    position: absolute;
    display: block;
}

.top-kpi-vars[data-ranking = "1"],
.top-kpi-vars[data-ranking = "2"],
.top-kpi-vars[data-ranking = "3"]{
    padding-right: 1em;
    position: relative;
}

.top-kpi-vars[data-ranking = "1"]:before,
.top-kpi-vars[data-ranking = "2"]:before,
.top-kpi-vars[data-ranking = "3"]:before{
    width: 24px;
    height: 24px;
    content: "";
    position: absolute;
    right: -3px;
    background: url(../img/common/rank_1.png) no-repeat center center;
    background-size: contain;
    top: calc(50% - 12px);
}
.top-kpi-vars[data-ranking = "2"]:before{
    background: url(../img/common/rank_2.png) no-repeat center center;
    background-size: contain;
}

.top-kpi-vars[data-ranking = "3"]:before{
    background: url(../img/common/rank_3.png) no-repeat center center;
    background-size: contain;
}


.top-kpi-wrap-inner{
    background: rgba(255,255,255,.2);
    border-radius: 5px;
}
.top-kpi-item table{
    width: 100%;
}
.top-kpi-item th,
.top-kpi-item td{
    font-size: .75rem;
    width: 40%;
}
.top-kpi-item th{
    text-align: left;
}

.top-kpi-item td{
    width: 45%;
}

.top-kpi-item td span{
    font-size: .875rem;
    font-weight: 900;
}

.grid-top-kpi-parent {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(3, 1fr);
    grid-column-gap: .5rem;
    grid-row-gap: .5rem;
    width: 100%;
}

.grid-top-kpi-div1 { 
    grid-area: 1 / 1 / 4 / 2;
}
.grid-top-kpi-div2 { 
    grid-area: 1 / 2 / 2 / 3;
    background: rgba(255,255,255,.1);
    border-radius: 5px;
}
.grid-top-kpi-div3 { 
    grid-area: 2 / 2 / 3 / 3;
    background: rgba(255,255,255,.1);
    border-radius: 5px;
}
.grid-top-kpi-div4 { 
    grid-area: 3 / 2 / 4 / 3;
    background: rgba(255,255,255,.1);
    border-radius: 5px;
}
.top-kpi-item{
    display: flex;
    height: 100%;
    padding: .25rem .375rem;
}

.top-kpi-item .icon{
    padding-left: 1.25rem;
}

.grid-user-profile-kpi-parent {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 1fr;
    grid-column-gap: .5rem;
    grid-row-gap: .5rem;
    width: 100%;
}

.grid-user-profile-kpi-div1 {
    grid-area: 1 / 1 / 2 / 2;
    background: rgba(255,255,255,.1);
    border-radius: 5px;
}
.grid-user-profile-kpi-div2 {
    grid-area: 1 / 2 / 2 / 3;
    background: rgba(255,255,255,.1);
    border-radius: 5px;
}
.grid-user-profile-kpi-div3 {
    grid-area: 1 / 3 / 2 / 4;
    background: rgba(255,255,255,.1);
    border-radius: 5px;
}

.user-profile-kpi-item{
    padding: .5rem;
}

.user-profile-kpi-item th,
.user-profile-kpi-item td{
    width: 100%;
    display: block;
}

.user-profile-kpi-item td{
    text-align: right;
}


.user-profile-kpi-item .top-kpi-vars[data-ranking = "1"],
.user-profile-kpi-item .top-kpi-vars[data-ranking = "2"],
.user-profile-kpi-item .top-kpi-vars[data-ranking = "3"]{
    padding-right: 1.25rem;
}

.user-profile-kpi-item td span{
    font-size: 1rem;
}


.js-link-to-study-data,
.js-link-to-task-data,
.js-link-to-correct-data{
    cursor: pointer;
}

.campaign-cont-wrap{
    display: none;
}

.campaign-cont-slide {
    width : 100%;
    margin: 0px auto .5rem;
    overflow : hidden;
    border-radius: 5px;
}

.campaign-cont-slide ul{
    display : inline-block;
    margin: 0;
    padding-left: 100%;
    white-space : nowrap;
    animation : SlideSample 10s linear infinite;
}

.campaign-cont-slide ul li{
    display: inline;
    margin: 0 12px 0 0;
    color: #ffffff;
    font-weight: 700;
    font-size: 20px;
    font-family: 'Noto Sans JP';
}

.campaign-cont-slide ul li.campaign-cont-label{
    font-size: 14px;
    background: rgba(0,0,0,0.6);
    font-weight: 400;
    border-radius: 15px;
    padding: 1px 10px 2px;
    margin-bottom: 2px;
}

@keyframes SlideSample{
    0% { transform: translateX(0) }
    100% { transform: translateX(-100%) }
}

.number-button-wrap{
    display: grid;
    grid-template-columns: repeat(11, 1fr);
    grid-template-rows: 1fr;
    grid-column-gap: 5px;
    grid-row-gap: 0px;
}

.number-button-wrap .number-button{
    width: 100%;
    aspect-ratio: 1;
    border: 1px solid #DDD;
    background: radial-gradient(circle at 0% 0.5%, rgb(241, 241, 242) 0.1%, rgb(224, 226, 228) 100.2%);
    color: #666;
    border-radius: 3px;
    line-height: 1;
    text-align: center;
    font-size: clamp( 10px, 4vw, 14px );
    line-height: 1.5;
    font-family: "Arial";
    transform-origin: center center;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.number-button-wrap .number-button:active{
    transform: scale(.9);
    background: #DDD;
}

.number-button-wrap .number-button[data-number="clear"]:before{
    content: "";
    background: url(../img/common/incorrect.png) no-repeat center center;
    background-size: 20px 20px;
    width: 100%;
    height: 100%;
    filter: grayscale(1);
    opacity: .4;
    display: block;
}


.number-button-title{
    font-size: 0.625rem;
    letter-spacing: .05em;
    color: #666;
}

.support-tool{
    background: #FFF;
    border: 1px solid #EEE;
}

.support-tool-lead{
    font-size: 0.875rem;
}

.support-tool-attention{
    font-size: .66rem;
    color: #999;
}


.support-tool-output{

}

.support-tool-output #resultList{
    padding: 0;
    margin: 0;
}

.support-tool-output #resultList:empty{
    position: relative;
}

.support-tool-output #resultList:empty:before{
    content: "ここに解析結果が表示されます。";
    width: 100%;
    padding: .75rem;
    background: #EEE;
    color: #CCC;
    text-align: center;
    font-size: 0.875rem;
    display: block;
    border: dotted 1px #CCC;
}

.support-tool-output #resultList {
    list-style-type: none;
    padding: 0;
}

.support-tool-output #resultList li {
    padding: 7px 10px 7px 10px;
    border-bottom: 1px solid #eee;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.support-tool-output #resultList li .level-1{
    padding-left: calc( 1rem + 4px );
    font-size: 1.25rem;
    font-weight: 700;
    position: relative;
}

.support-tool-output #resultList li .level-1:before{
    content: "大";
    width: 16px;
    height: 16px;
    font-size: 10px;
    display: block;
    position: absolute;
    left: 0;
    top: 8px;
    background: #ff5b5b;
    border-radius: 10px;
    color: #FFF;
    text-align: center;
    line-height: 14px;
}

.support-tool-output #resultList li .level-2{
    padding-left: calc( 2rem + 4px );
    position: relative;
}

.support-tool-output #resultList li .level-2:before{
    content: "中";
    width: 16px;
    height: 16px;
    font-size: 10px;
    display: block;
    position: absolute;
    left: 1rem;
    top: 5px;
    background: #4c77d5;
    border-radius: 10px;
    color: #FFF;
    text-align: center;
    line-height: 14px;
}

.support-tool-output #resultList li .level-3{
    padding-left: calc( 3rem + 4px );
    font-size: .8rem;
    position: relative;
}

.support-tool-output #resultList li .level-3:before{
    content: "小";
    width: 16px;
    height: 16px;
    font-size: 10px;
    display: block;
    position: absolute;
    left: 2rem;
    top: 3px;
    background: #46914c;
    border-radius: 10px;
    color: #FFF;
    text-align: center;
    line-height: 15px;
}

.support-tool-output #resultList li.deleted {
    opacity: 0.3;
}

.support-tool-output #resultList li.deleted .text {
    text-decoration: line-through; /* 打ち消し線を追加 */
    color: #999; /* 色を薄くして視覚的に目立たなくする */
}


.old-small-question-data-title{
    font-size: 0.75rem;
    color: #999;
    text-align: center;
    letter-spacing: .1rem;
    text-indent: -1rem;
    display: none;
}



/** like animation */

:root {
  --size: 18px;
  --color-primary: #E18A6D;
  --color-secondary: #ffcdd2;
  --color-white: #FFFFFF;
  --color-hearth: var(--color-secondary);
  --color-drop: var(--color-primary);
  --color-circle: var(--color-secondary);
  --size-hearth: var(--size);
  --size-drop: var(--size);
  --size-circle: calc(var(--size) * 1.33);
  --size-lines: calc(var(--size) * 2.66);
  --ratio-hearth: 1;
  --ratio-hearth-scale: 1;
  --ratio-scale: 1;
  --ratio-rotate: 1;
  --ratio-offset-drop: 1;
  --offset-drop: calc(var(--size) * 2);
  --line-length: 5;
  --line-offset: 35;
  --opacity-circle: 0.15;
  --opacity-drop: 0;
  --opacity-lines: 0;
}

.hearth,
.drop,
.circle,
.lines,
.background {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.hearth {
  width: calc(var(--size-hearth) * var(--ratio-hearth));
  height: calc(var(--size-hearth) / var(--ratio-hearth));
  transform: translate(-50%, -50%) scaleX(var(--ratio-rotate)) scale(var(--ratio-hearth-scale));
}
.hearth path {
  fill: var(--color-hearth);
}

.drop {
  width: var(--size-drop);
  height: var(--size-drop);
  transform: translate(-50%, calc(-50% + var(--offset-drop) * -1 * var(--ratio-offset-drop))) scaleX(var(--ratio-rotate)) scale(var(--ratio-hearth-scale));
  opacity: var(--opacity-drop);
}
.drop path {
  fill: var(--color-drop);
}

.like {
  width: var(--size-circle);
  height: var(--size-circle);
  transform: scale(var(--ratio-scale));
  cursor: pointer;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-tap-highlight-color: transparent;
}

.like.scale--2{
    transform: scale(1.5);
}


.circle {
  width: var(--size-circle);
  height: var(--size-circle);
  border-radius: 9999px;
  background-color: var(--color-circle);
  opacity: var(--opacity-circle);
}

.lines {
  width: var(--size-lines);
  height: var(--size-lines);
  opacity: var(--opacity-lines);
}
.lines line {
  stroke-dasharray: var(--line-length) 30;
  stroke-dashoffset: var(--line-offset);
  stroke: var(--color-drop);
  stroke-width: 2px;
  stroke-linecap: round;
}

.plus-one {
  --ratio-offset-y: 0;
  --ratio-offset-x: 0;
  --ratio-scale: 0;
  background-color: var(--color-primary);
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 9999px;
  transform: translate(-50%, -70%) translate(calc(var(--size) * var(--ratio-offset-x)), calc(var(--size) * -2 * var(--ratio-offset-y))) rotate(calc(-20deg * var(--ratio-offset-x))) scale(var(--ratio-scale));
}
.plus-one:after {
  content: "+1";
  color: var(--color-white);
  font-family: "Varela Round", sans-serif;
  font-size: var(--size);
  padding: 0.25em;
}

.background {
  opacity: 0.25;
  pointer-events: none;
}

.dribbble {
  position: fixed;
  display: block;
  right: 20px;
  bottom: 20px;
}
.dribbble img {
  display: block;
  height: 28px;
}

.twitter {
  position: fixed;
  display: block;
  right: 64px;
  bottom: 14px;
}
.twitter svg {
  width: 32px;
  height: 32px;
  fill: #1da1f2;
}

/**
 * コインアニメーション
 */

.gsap-coin{
    width: 24px;
    height: 24px;
    background: url(../img/common/coin.png) no-repeat center center;
    background-size: contain;
    display: inline-block;
    position: fixed;
    z-index: 1000;
    top: 0;
    left: 0;
}


#right-iframe-wrap{
    position: fixed;
    top: 0;
    right: -375px; /* iFrameを初期位置で画面外に設定 */
    transition: right 0.5s ease;
    width: 375px;
    height: 100%;
    z-index: 1000; 
}

#right-iframe-wrap.show{
    right: 0; /* 画面に表示される位置 */
}


/** dashboard */

.dashboard-breadcrumb-wrap{
    font-size: .75rem;
}

.dashboard-breadcrumb-item{
    margin-right: 0.25rem;
}

.dashboard-breadcrumb-wrap a{
    padding: 0 .5rem;
    color: #333;
    border-radius: 10px;
    background: #FFF;
    text-decoration: none;
    margin-right: 1em;
    position: relative
}

.dashboard-breadcrumb-wrap a:after{
    content: ">";
    position: absolute;
    right: -12px;
    color: #FFF;
}

.dashboard-wrap {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    grid-template-rows: 1fr;
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
    margin-bottom: 1rem;
}

@media all and (max-width: 480px){

    .dashboard-wrap {
        display: block;
    }

    .dashboard-wrap .dashboard-item{
        margin-bottom: 0.5rem;
    }
      
}

.dashboard-wrap .div1 { grid-area: 1 / 1 / 2 / 4; }
.dashboard-wrap .div2 { grid-area: 1 / 4 / 2 / 5; }
.dashboard-wrap .div3 { grid-area: 4 / 1 / 6 / 3; }
.dashboard-wrap .div4 { grid-area: 4 / 3 / 6 / 5; }

.dashboard-item{
    padding: 1.5rem;
    background: #FFF;
    border-radius: 5px;
    color: #343445;
}

@media all and (max-width: 480px){

    .dashboard-item{
        padding: 1rem 1rem 2.5rem;
    }

}


.chart-title[data-current = "week"] .js-graph-update-trigger[data-span = "week"],
.chart-title[data-current = "month"] .js-graph-update-trigger[data-span = "month"],
.chart-title[data-current = "period"] .js-graph-update-trigger[data-span = "period"],
.chart-title[data-current = "all"] .js-graph-update-trigger[data-span = "all"],
.data-title[data-current = "week"] .js-data-update-trigger[data-span = "week"],
.data-title[data-current = "month"] .js-data-update-trigger[data-span = "month"],
.data-title[data-current = "period"] .js-data-update-trigger[data-span = "period"],
.data-title[data-current = "all"] .js-data-update-trigger[data-span = "all"]
{
    font-weight: bold;
    text-decoration: none !important;
    color: #000 !important;
    pointer-events: none;
}

.data-title[data-current = "week"] .js-data-update-trigger[data-span = "week"],
.data-title[data-current = "month"] .js-data-update-trigger[data-span = "month"],
.data-title[data-current = "period"] .js-data-update-trigger[data-span = "period"],
.data-title[data-current = "all"] .js-data-update-trigger[data-span = "all"]{
    color: #FFF !important;
}

.chart-title[data-current = "all"] [data-change-type="prev"],
.chart-title[data-current = "all"] [data-change-type="next"],
.data-title[data-current = "all"] + .period-nav [data-change-type="prev"],
.data-title[data-current = "all"] + .period-nav [data-change-type="next"]{
    pointer-events: none;
    opacity: .3;
    filter: grayscale(100%);
    user-select: none;
}

.dashboard-title-lead{
    display: inline-block;
    margin-left: 0;
    font-size: 11px;
    color: #999;
    font-weight: normal;
}

.dashboard-item[data-type = "work-hard-graph"] .chart{
    position: relative;
}

.dashboard-item[data-type = "work-hard-graph"] .chart,
.dashboard-item[data-type = "study-time-graph"] .chart,
.dashboard-item[data-type = "study-data-graph"] .chart{
    display: none;
}

.dashboard-item[data-type = "work-hard-graph"] .chart.current,
.dashboard-item[data-type = "study-time-graph"] .chart.current,
.dashboard-item[data-type = "study-data-graph"] .chart.current{
    display: block;
}


.dashboard-item[data-type = "work-hard-graph"] .chart #scatterChart,
.dashboard-item[data-type = "work-hard-graph"] .chart #scatterChart2,
.dashboard-item[data-type = "work-hard-graph"] .chart #scatterChart3,
.dashboard-item[data-type = "work-hard-graph"] .chart #scatterChart4{
    position: relative;
    z-index: 1;
}

.dashboard-item[data-type = "work-hard-graph"] .chart .work-hard-graph-overlay{
    position: absolute;
    z-index: 0;
    top: 38px;
    left: calc(0px + 30px);
    width: calc(100% - 45px);
    height: calc(100% - 45px);
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
}

.dashboard-item[data-type = "work-hard-graph"] .chart .work-hard-graph-overlay .div1 {
    grid-area: 1 / 1 / 2 / 2;
    background: #ffd3d3;
    border: 1px solid #fca1a1;
    border-radius: 10px;
}

.dashboard-item[data-type = "work-hard-graph"] .chart .work-hard-graph-overlay .div1:before{
    content: "ハマり、詰まり、承認漏れの可能性";
    color: #c93030;
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    font-size: 12px;
    font-family: "Noto Sans JP";
    font-weight: bold;
    height: 100%;
    padding: 10px;
}

.dashboard-item[data-type = "work-hard-graph"] .chart .work-hard-graph-overlay .div2 {
    grid-area: 1 / 2 / 2 / 3;
    background: #d7ffcd;
    border: 1px solid #a0d294;
    border-radius: 10px;
}

.dashboard-item[data-type = "work-hard-graph"] .chart .work-hard-graph-overlay .div2:before{
    content: "時間をかけてかなり頑張っている";
    /* text-shadow: 1px 1px 0 rgba(0, 0, 0, .5); */
    color: #43633b;
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    font-size: 12px;
    font-family: "Noto Sans JP";
    font-weight: bold;
    height: 100%;
    padding: 10px;
}

.dashboard-item[data-type = "work-hard-graph"] .chart .work-hard-graph-overlay .div3 {
    grid-area: 2 / 1 / 3 / 2;
    background: #e7e7e7;
    border: 1px solid #c7c7c7;
    border-radius: 10px;
}

.dashboard-item[data-type = "work-hard-graph"] .chart .work-hard-graph-overlay .div3:before{
    content: "サボり気味";
    color: #777;
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    font-size: 12px;
    font-family: "Noto Sans JP";
    font-weight: bold;
    height: 100%;
    padding: 10px;
}

.dashboard-item[data-type = "work-hard-graph"] .chart .work-hard-graph-overlay .div4 {
    grid-area: 2 / 2 / 3 / 3;
    background: #d2efff;
    border: 1px solid #90c6e4;
    border-radius: 10px;
}

.dashboard-item[data-type = "work-hard-graph"] .chart .work-hard-graph-overlay .div4:before{
    content: "効率よく頑張っている";
    color: #4a6777;
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    font-size: 12px;
    font-family: "Noto Sans JP";
    font-weight: bold;
    height: 100%;
    padding: 10px;
}

.point-ranking-item{
    margin-bottom: .5rem;
    border-radius: 5px;
    padding: .25rem;
    /* border: 1px solid #f7f7f7; */
    box-shadow: 0 2px 8px -5px rgb(0 0 0 / 20%);
    cursor: pointer;
}

.point-ranking-item[data-rank="1"]{
    font-size: 1.125rem;
    font-weight: bold;
}

.point-ranking-item[data-rank="2"]{
    font-size: 1.125rem;
}

.point-ranking-item[data-rank="3"]{
    font-size: 1.125rem;
}

.work-hard-graph-span-input{
    width: 100%;
    margin-bottom: .5rem;
}

.js-reflesh-work-hard-graph{
    margin-left: .25rem;
}

.earned-log-wrap .earned-log-item{
    border-color: rgb(0 0 0 / 25%);
    box-shadow: inset 0 1px rgb(255 255 255 / 10%);
}

.earned-log-wrap .earned-log-item[data-color = 'blue']{
    background: rgba(18, 20, 63, 0.7);
}

.earned-log-wrap .earned-log-item[data-color = 'green']{
    background: rgba(17, 54, 17, 0.7);
}

.reflesh-work-hard-graph-wrap{
    text-align: right;
}

@media all and (max-width: 480px){

    .dashboard-title-lead{
        margin-left: 0;
    }

    .work-hard-graph-span-input{
        width: 100%;
        display: block;
    }

    .work-hard-graph-span-input-wrap{
        margin-bottom: 0.25rem;
    }

    .work-hard-graph-span-input-wrap span{
        display: block;
    }

    .js-reflesh-work-hard-graph{
        margin-left: 0;
    }

}

.study-declaration-current-datas{
    font-size: .75rem;
}

.study-declaration-message{
    font-size: 0.875rem;
    border: 1px solid #DDD;
}

.study-declaration-goal-date{
    font-weight: bold;
    color: #C00;
}

.study-declaration-anxiety-lead{
    font-size: 0.75rem;
    text-align: left;
}

.study-declaration-anxiety-wrap .hiddenForm{
    display: none;
}

.study-declaration-anxiety-wrap .hiddenForm.show{
    display: block;
}

.study-declaration-today-goal{
    position: relative;
}

.study-declaration-today-goal .form-check .form-check-input{
    float: none;
    margin-right: .25rem;
}

.study-declaration-today-goal-label{
    position: absolute;
    width: 50px;
    height: 50px;
    display: flex;
    background: #FFF;
    font-size: .75rem;
    border-radius: 63px;
    justify-content: center;
    align-items: center;
    line-height: 1.33;
    left: -10px;
    top: -4px;
    font-weight: 700;
}


.task-goal-date-wrap{
    display: none;
}

.today-remains-wrap{
    width: 80px;
    height: 80px;
    display: flex;
    background: #ffe9e9;
    flex-wrap: wrap;
    border-radius: 45px;
    align-content: center;
    justify-content: center;
    align-items: center;
    text-align: center;
    text-decoration: none;
    color: #333;
    line-height: 1.33;
    position: fixed;
    z-index: 100;
    right: 0.75rem;
    top: calc( 46px + .75rem );
    font-size: 0.875rem;
}

.today-remains-wrap.isComplete{
    background: #bef9bd;
}

.today-remains-wrap.isComplete:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/goodPoint.png) no-repeat center center;
    background-size: contain;
    width: 24px;
    height: 24px;
    top: 7px;
    left: -7px;
}

.today-remains-wrap-label{
    font-size: 12px;
    background: #ffd3d3;
    display: inline-block;
    padding: 1px 6px;
    border-radius: 10px;
    margin-bottom: .25rem;
}

.today-remains-wrap.isComplete .today-remains-wrap-label{
    background: #88e775;
}

.ai-scoring-wrap{
    background: #F9F9F9;
    border-radius: 10px;
    padding: 1rem;
    font-size: .875rem;
    line-height: 1.75;
    color: #333344;
}

.ai-scoring-title{
    display: inline-block;
    padding: 1px 8px;
    background: #CCC;
    border-radius: 5px;
    font-size: .75rem;
    margin-bottom: 5px;
}

.unit{
    font-size: 0.75em;
}

.prev-pending-task-btn,
.next-pending-task-btn{
    position: fixed;
    margin-right: 0;
    margin-left: 0;
    z-index: 1000;
    font-size: .75rem;
    font-weight: 700;
    width: 36px;
    height: 60px;
    padding: 0.375rem;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1.25;
    background: rgb(252 255 252 / 40%);
    border: 1px solid #549660;
    backdrop-filter: blur(3px);
    color: #333;
    box-shadow: 5px 4px 10px -6px rgba(0, 0, 0, .6);
}

.prev-pending-task-btn{
    bottom: calc(50vh - 20px);
    left: -0.375rem;
    padding: 1.25rem 0.375rem 0.375rem 0.75rem;
}

.prev-pending-task-btn:before{
    content: "◀";
    position: absolute;
    top: 0.875rem;
    font-size: 8px;
}

.next-pending-task-btn{
    bottom: calc(50vh - 20px);
    right:-0.375rem;
    padding: 1.25rem 0.75rem 0.375rem 0.375rem ;
}

.next-pending-task-btn:before{
    content: "▶";
    position: absolute;
    top: 0.875rem;
    font-size: 8px;
}

#countdown-wrap{
    font-size: 0.875rem;
    position: relative;
}

/*#countdown-wrap:before {
    content: "現在の目標";
    font-size: 10px;
    color: #999;
    position: absolute;
    left: 5px;
    top: 3px;
    z-index: 1;
    letter-spacing: .05rem;
}*/

#countdown span{
  font-family: "WDXL Lubrifont TC", sans-serif;
  font-weight: 400;
  font-style: normal;
}

/**
 * フロートメッセージ
 */

.floatMessageWrap{
    position: fixed;
    left: 50%;
    top: 60px;
    transform: translateX(-50%);
    z-index: 100000;
}

.floatMessageWrap[data-position = "center"]{
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
}

.floatMessage{
    background: #333;
    font-size: .875rem;
    color: #FFF;
    padding: 1.5rem 1.5rem;
    width: 90vw;
    max-width: 432px;
    min-height: 60px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 15px -10px rgba(0, 0, 0, .5);
    text-align: center;
}

.floatMessageWrap[data-color = "white"] .floatMessage{
    background: #fffaf4;
    color: #444;
}

.floatMessageWrap[data-color = "yellow"] .floatMessage{
    background: #FFCC00;
    color: #222;
}

.floatMessageWrap[data-color = "red"] .floatMessage{
    background: #CC0000;
    color: #FFF;
}

.symbol{
    color: #F00;
}

.small-question-answer-textarea{
    border: 3px solid #DDD;
}

.apploval-list-table {
    width: 100%;
    border-collapse: collapse;
    font-family: "Segoe UI", "Arial", sans-serif;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.07);
    table-layout: fixed;
    border-radius: 0;
}

.apploval-list-table th, .apploval-list-table td {
  padding: 5px 5px;
  text-align: left;
}

.apploval-list-table th {
    padding: 10px !important;
    background: #f6f8fa;
    color: #222;
    font-weight: 700;
    font-size: .75rem;
    border-bottom: 2px solid #eaecef;
}

.apploval-list-table tr {
  border-bottom: 1px solid #f0f0f0;
}

.apploval-list-table tr:last-child {
  border-bottom: none;
}

.apploval-list-table tbody tr:hover {
  background: #f0f6ff;
  transition: background 0.2s;
}

.apploval-list-table td {
  color: #333;
  vertical-align: middle;
  word-break: break-word;
}

.status-list-wrap a,
.user-list-wrap a{
    display: inline-block;
    position: relative;
    margin: 0 8px 8px 0;
}

.status-list-wrap a.current:before,
.user-list-wrap a.current:before{
    border-radius: 50%;
    content: "";
    width: calc( 100% + 6px );
    height: auto;
    aspect-ratio: 1;
    background: none;
    border: 3px solid #FC0;
    position: absolute;
    top: -3px;
    left: -3px;
    display: block;
    z-index: 1;
}

.user-list-wrap a.uncomplete:before{
    border-radius: 50%;
    content: "";
    width: calc( 100% + 6px );
    height: auto;
    aspect-ratio: 1;
    background: none;
    border: 3px solid #FF0000;
    position: absolute;
    top: -3px;
    left: -3px;
    display: block;
    z-index: 1;    
}

.user-list-wrap a.remainPending:before{
    border-radius: 50%;
    content: "";
    width: calc( 100% + 6px );
    height: auto;
    aspect-ratio: 1;
    background: none;
    border: 3px solid #FF9900;
    position: absolute;
    top: -3px;
    left: -3px;
    display: block;
    z-index: 1;    
}

.user-list-wrap a[data-num]:after{
    content: attr(data-num) "";
    background: #999;
    color: #FFF;
    font-size: 10px;
    font-weight: normal;
    text-align: center;
    display: inline-block;
    position: absolute;
    right: -3px;
    bottom: -6px;
    border-radius: 12px;
    min-width: 20px;
    pointer-events: none;
    z-index: 2;
}

.user-list-wrap a[data-num = "0"]:after{
    content: "";
    display: none; 
}
.user-list-wrap a[data-status = "all"]:after{
    background: #999;
    color: #111;
}

.user-list-wrap a[data-status = "1"]:after{
    background: #4ec61c;
}

.user-list-wrap a[data-status = "2"]:after{
    background: #fe0a7c;
}

.user-list-wrap a[data-status = "3"]:after{
    background: #fd1883;
    color: #111;
}


/** ドロワーメニュー */
.drawer-menu__trigger {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: none;
  background: none;
  padding: 0;
}

body.study-text .drawer-menu__trigger{
    display: none;
}


.drawer-menu__trigger--inner {
  position: relative;
  width: 28px;
  height: 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition: 0.3s;
}
.drawer-menu__trigger--inner span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 4px;
  background: #333;
  border-radius: 2px;
  transition: 0.3s;
}
.drawer-menu__trigger--inner span:nth-child(1) {
  top: 3px;
}
.drawer-menu__trigger--inner span:nth-child(2) {
  top: 12px;
}
.drawer-menu__trigger--inner span:nth-child(3) {
  top: 21px;
}

/* トグル時（openクラス） */
.drawer-menu--show .drawer-menu__trigger .drawer-menu__trigger--inner span:nth-child(1) {
  top: 12px;
  transform: rotate(45deg);
}
.drawer-menu--show .drawer-menu__trigger .drawer-menu__trigger--inner span:nth-child(2) {
  opacity: 0;
}
.drawer-menu--show .drawer-menu__trigger .drawer-menu__trigger--inner span:nth-child(3) {
  top: 12px;
  transform: rotate(-45deg);
}

.drawer-nav__wrapper{
    background: rgba(32, 32, 32, .7);
    backdrop-filter: blur(4px);
    position: fixed;
    right: -360px;
    top: 0;
    width: 300px;
    height: 100vh;
    transition: right .3s;
    z-index: 1021;
    box-shadow: -5px 1px 20px -3px rgb(0 0 0 / 75%);
    overflow: scroll;
}

.drawer-menu--show .drawer-nav__wrapper{
    right: 0;
}

.contents__overlay{
    width: 100vw;
    height: 100vh;
    background: rgba(0,0,0,.8);
    cursor: pointer;
    position: fixed;
    z-index: 1020;
    top: 0;
    left: 0;
    display: none;
}

.drawer-menu--show .contents__overlay{
    /*display: block;*/
}


.drawer-menu__container{
    padding: 48px 0 0;
}

.drawer-menu__item,.drawer-sub-menu__item{
    border-bottom: 1px solid #303030;
    box-shadow: inset 0px -1px 0 0 rgb(27 27 27);
    position: relative;
    list-style: none;
}

.drawer-menu__item > a{
    display: block;
    padding: 15px 30px 15px 60px;
    color: #FFCC00;
    font-weight: 700;
    text-decoration: none;
    letter-spacing: 0.03em;
    font-size: .875rem;
    user-select: none;
    background-size: 25px 25px;
}

.drawer-menu__item:hover,
.drawer-menu__item:has(.current){
    background: #FFCC00;
}

.drawer-menu__item:hover > a,
.drawer-menu__item > a.current{
    color: #222;
}



.drawer-menu__link[data-name="home"]{
    background-image: url(../img/nav/home_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="home"]:hover,
.drawer-menu__link.current[data-name="home"]{
    background-image: url(../img/nav/home.png);
}

.drawer-menu__link[data-name="study-data"]{
    background-image: url(../img/nav/study_data_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="study-data"]:hover,
.drawer-menu__link.current[data-name="study-data"]{
    background-image: url(../img/nav/study_data.png);
}

.drawer-menu__link[data-name="assignment-list"]{
    background-image: url(../img/nav/assignment_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="assignment-list"]:hover,
.drawer-menu__link.current[data-name="assignment-list"]{
    background-image: url(../img/nav/assignment.png);
}

.drawer-menu__link[data-name="dashboard"]{
    background-image: url(../img/nav/dashboard_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="dashboard"]:hover,
.drawer-menu__link.current[data-name="dashboard"]{
    background-image: url(../img/nav/dashboard.png);
}

.drawer-menu__link[data-name="question-regist"]{
    background-image: url(../img/nav/assignment_regist_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="question-regist"]:hover,
.drawer-menu__link.current[data-name="question-regist"]{
    background-image: url(../img/nav/assignment_regist.png);
}

.drawer-menu__link[data-name="team-edit"]{
    background-image: url(../img/nav/team_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="team-edit"]:hover,
.drawer-menu__link.current[data-name="team-edit"]{
    background-image: url(../img/nav/team.png);
}

.drawer-menu__link[data-name="setting"]{
    background-image: url(../img/nav/setting_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="setting"]:hover,
.drawer-menu__link.current[data-name="setting"]{
    background-image: url(../img/nav/setting.png);
}


.drawer-menu__link[data-name="reward"]{
    background-image: url(../img/nav/reward_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="reward"]:hover,
.drawer-menu__link.current[data-name="reward"]{
    background-image: url(../img/nav/reward.png);
}


.drawer-menu__link[data-name="approval-list"]{
    background-image: url(../img/nav/approval_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="approval-list"]:hover,
.drawer-menu__link.current[data-name="approval-list"]{
    background-image: url(../img/nav/approval.png);
}

.drawer-menu__link[data-name="profile"]{
    background-image: url(../img/nav/profile_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="profile"]:hover,
.drawer-menu__link.current[data-name="profile"]{
    background-image: url(../img/nav/profile.png);
}

.drawer-menu__link[data-name="contact-list"]{
    background-image: url(../img/nav/contact_list_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="contact-list"]:hover,
.drawer-menu__link.current[data-name="contact-list"]{
    background-image: url(../img/nav/contact_list.png);
}

.drawer-menu__link[data-name="data-status-transition"]{
    background-image: url(../img/nav/data_status_transition_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="data-status-transition"]:hover,
.drawer-menu__link.current[data-name="data-status-transition"]{
    background-image: url(../img/nav/data_status_transition.png);
}

.drawer-menu__link[data-name="logout"]{
    background-image: url(../img/nav/logout_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="logout"]:hover,
.drawer-menu__link.current[data-name="logout"]{
    background-image: url(../img/nav/logout.png);
}

.drawer-menu__link[data-name="hidden-link"]{
    background-image: url(../img/nav/hidden_link_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="hidden-link"]:hover,
.drawer-menu__link.current[data-name="hidden-link"]{
    background-image: url(../img/nav/hidden_link.png);
}


.drawer-menu__link[data-name="gym"]{
    background-image: url(../img/nav/gym_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="gym"]:hover,
.drawer-menu__link.current[data-name="gym"]{
    background-image: url(../img/nav/gym.png);
}

.drawer-menu__link[data-name="need-help-list"]{
    background-image: url(../img/nav/need_help_list_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="need-help-list"]:hover,
.drawer-menu__link.current[data-name="need-help-list"]{
    background-image: url(../img/nav/need_help_list.png);
}


.drawer-menu__link[data-name="raw-study-time-log"]{
    background-image: url(../img/nav/raw_study_time_log_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="raw-study-time-log"]:hover,
.drawer-menu__link.current[data-name="raw-study-time-log"]{
    background-image: url(../img/nav/raw_study_time_log.png);
}

.drawer-menu__link[data-name="question-viewer"]{
    background-image: url(../img/nav/question_viewer_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="question-viewer"]:hover,
.drawer-menu__link.current[data-name="question-viewer"]{
    background-image: url(../img/nav/question_viewer.png);
}


.drawer-menu__link[data-name="regist-type-describe"]{
    background-image: url(../img/nav/type_describe_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="regist-type-describe"]:hover,
.drawer-menu__link.current[data-name="regist-type-describe"]{
    background-image: url(../img/nav/type_describe.png);
}

.drawer-menu__link[data-name="regist-type-reading"]{
    background-image: url(../img/nav/type_reading_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="regist-type-reading"]:hover,
.drawer-menu__link.current[data-name="regist-type-reading"]{
    background-image: url(../img/nav/type_reading.png);
}

.drawer-menu__link[data-name="regist-type-sound"]{
    background-image: url(../img/nav/type_sound_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="regist-type-sound"]:hover,
.drawer-menu__link.current[data-name="regist-type-sound"]{
    background-image: url(../img/nav/type_sound.png);
}

.drawer-menu__link[data-name="regist-type-upload"]{
    background-image: url(../img/nav/type_upload_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="regist-type-upload"]:hover,
.drawer-menu__link.current[data-name="regist-type-upload"]{
    background-image: url(../img/nav/type_upload.png);
}

.drawer-menu__link[data-name="regist-type-movie"]{
    background-image: url(../img/nav/type_movie_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="regist-type-movie"]:hover,
.drawer-menu__link.current[data-name="regist-type-movie"]{
    background-image: url(../img/nav/type_movie.png);
}

.drawer-menu__link[data-name="help"]{
    background-image: url(../img/nav/help_y.png);
    background-position: left 20px center;
    background-repeat: no-repeat;
}

.drawer-menu__link[data-name="help"]:hover,
.drawer-menu__link.current[data-name="help"]{
    background-image: url(../img/nav/help.png);
}


.drawer-sub-menu__item > a{
    display: block;
    padding: 10px 20px 10px 40px;
    color: #FFCC00;
    text-decoration: none;
    line-height: 1.25;
    font-size: 14px;
    user-select: none;
    position: relative;

}

.drawer-sub-menu__item.current > a{
    background-color: #ebf3e7;
    font-weight: bold;
    pointer-events: none;
}

.drawer-sub-menu__container{
    display: none;
    padding: 0;
}

.drawer-sub-menu-open-trigger{
    background: url(../img/global_menu_hover_arrow.png) no-repeat center center;
    position: absolute;
    width: 50px;
    height: 50px;
    right: 0px;
    top: 0px;
    display: block;
    cursor: pointer;
    transition: transform .3s;
}

.show .drawer-sub-menu-open-trigger{
    transform: rotate(180deg);
}

.w-32--item{
    width: 32px;
}

.sum-value a{
    color: #FFF;

}

.user-list-wrap a[data-reward-comp = "1"]:after {
    content: "達";
    background: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%);
    color: #111;
    font-size: 11px;
    font-weight: normal;
    text-align: center;
    display: inline-block;
    position: absolute;
    right: -3px;
    bottom: -6px;
    border-radius: 12px;
    width: 16px;
    height: 16px;
    pointer-events: none;
    z-index: 2;
}

.user-list-wrap a[data-reward-comp = "2"]:after {
    content: "近";
    background: linear-gradient(45deg, #757575 0%, #9E9E9E 45%, #E8E8E8 70%, #9E9E9E 85%, #757575 90% 100%);    color: #111;
    font-size: 11px;
    font-weight: normal;
    text-align: center;
    display: inline-block;
    position: absolute;
    right: -3px;
    bottom: -6px;
    border-radius: 12px;
    width: 16px;
    height: 16px;
    pointer-events: none;
    z-index: 2;
}

.user-list-wrap a[data-reward-comp = "3"]:after {
    content: "待";
    background: #ef2e2e;
    color: #FFF;
    font-size: 11px;
    font-weight: normal;
    text-align: center;
    display: inline-block;
    position: absolute;
    right: -3px;
    bottom: -6px;
    border-radius: 12px;
    width: 16px;
    height: 16px;
    pointer-events: none;
    z-index: 2;
}


.contact-btn-wrap{
    cursor: pointer;
    position: fixed;
    bottom: 120px;
    left: 0px;
    z-index: 999;    
}

.contact-btn{
    width: 32px;
    aspect-ratio: 1;
    display: block;
    background: url("../img/common/contact.png") no-repeat center center;
    background-size: contain;
}

.ai-scoring-trigger{
    cursor: pointer;
    text-decoration: underline;
    color: #0066FF;
}

.ai-scoring-trigger:hover{
    text-decoration: none;
}

.reward-total-price{
    font-size: 1.5rem;
}

.reward-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px; /* 画像の隙間 */
    width: 100%;  /* 全体サイズを調整 */
}

.reward-grid .reward-grid-item{
    transform-origin: center center;
    transition: transform .2s;
}

.reward-grid .reward-grid-item:active{
    transform: scale(.9);
}


.reward-grid .reward-grid-item-name{
    font-size: .75rem;
    font-weight: bold;
    width:100%;
    max-width: 100%;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
}

.reward-grid .reward-grid-item-price{
    font-size: .875rem;
    font-weight: bold;
    text-align: right;
}

.reward-grid .reward-grid-item img {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 5px;
    object-fit: cover;
    display: block;
}


.reward-detail-wrap{
    position: relative;
}

.reward-detail-name{
    position: absolute;
    z-index: 1;
    top: 15px;
    left: 0px;
    font-weight: bold;
    color: #333;
    background: rgba(255,255,255,.7);
    font-size: 14px;
    padding: .25rem .5rem;
    line-height: 1;
}

.reward-detail-img-wrap img {
    width: 100%;
    aspect-ratio: 1.625 / 1;
    border-radius: 5px;
    object-fit: cover;    
}

.reward-detail-goal{
    position: absolute;
    z-index: 1;
    bottom: 5px;
    right: 5px;
    color: #333;
    background: rgba(255, 255, 255, .7);
    font-size: 14px;
    padding: .375rem .75rem;
    border-radius: 4px;
}

.reward-detail-goal b{
    font-size: 150%;
}



/** booklist */
.booklist-wrap {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    width: 100%;
}

.booklist-wrap .booklist-item{
    position: relative;
}

.booklist-wrap .booklist-item-image{
    margin-bottom: 0.25rem;
}

.booklist-wrap .booklist-item-image img{
    width: 100%;
    aspect-ratio: 1 / 1.414;
    border-radius: 5px;
    object-fit: cover;
    display: block;
}

.booklist-wrap .booklist-item-title{    
    font-size: .75rem;
    font-weight: bold;
    width: 100%;
    max-width: 100%;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
}

.booklist-wrap .booklist-item-user-num{
    font-size: .75rem;
}

.booklist-wrap .booklist-item-reward {
    position: absolute;
    z-index: 1;
    bottom: 50px;
    right: 5px;
    color: #333;
    background: rgb(255 255 255);
    font-size: 14px;
    padding: .25rem .75rem;
    border-radius: 4px;
}


.booklist-wrap .booklist-item [type = 'checkbox']{
    top: -5px;
    left: -5px;
    position: absolute;
    z-index: 2;
    font-size: 1.5rem;
}

.booklist-wrap .booklist-item label:has([type = 'checkbox']:checked) .booklist-item-image{
    position: relative;
}

.booklist-wrap .booklist-item label:has([type = 'checkbox']:checked) .booklist-item-image:before{
    content: "選択済";
    width: 100%;
    height: 100%;
    display: flex;
    position: absolute;
    font-size: 14px;
    font-weight: bold;
    letter-spacing:.03em;
    z-index: 2;
    left: 0;
    top: 0;
    background: rgba(0, 0, 0, .8);
    align-content: center;
    justify-content: center;
    align-items: center;
    border-radius: 4px;
}

.js-mokuji-from-link-wrap{
    padding: 1rem;
    background: #eee;
}

.js-mokuji-from-link-wrap:empty{
    display: none;
}

.exam-log{
    cursor: pointer;
}

.exam-log[data-progress = "0"]{
    background: #ffd4d4;
}

.exam-log[data-progress = "100"]{
    background: #dbffdc;
}

.question-explanation-wrap{
    border: 1px solid #EEE;
    background: #FFF;
}

.question-explanation-wrap[data-show = "0"]{
    display: none !important;
}

.question-explanation-wrap[data-show = "1"]{
    display: block;
}

.question-explanation-inner{
    letter-spacing: .05em;
    line-height: 1.75;
    background: #e8e8e8;
    color: #444;
    border: 1px solid #e2e2e2;
}

.question-explanation-evaluation-wrap[data-show = "0"]{
    display: none !important;
}

.question-explanation-evaluation-wrap[data-show = "1"]{
    display: block;
}

/** 正解モーダル内 */

.animation-modal-wrap[data-correct = "1"] .question-explanation-wrap{
    color: #333;
}

.animation-modal-wrap[data-correct = "1"] .question-explanation-inner{
    color: #333;
    max-height: calc(100vh - 450px);
    overflow: scroll;    
}

.animation-modal-wrap[data-correct = "1"] .question-explanation-inner::-webkit-scrollbar{
    display: block;
}


.other-user-fixed{
    color: #333;
    position: sticky;
    top: 48px;
    background: #FC0;
    z-index: 70;
}


.answerGroupRequiredTimeStrWrap[data-incorrect-status = "4"]{
    color: #F00 !important;
}

/*.answerGroupRequiredTimeStrWrap[data-incorrect-status = "4"]:after{
    content: "時間切れ";
    font-size: 10px;
    padding-left: .25rem;
}*/

.question-result-label[data-correct = "0"]:before,
.question-result-label[data-correct = "1"][data-incorrect-status = "0"]:before,
.question-result-label[data-correct = "0"][data-incorrect-status = "1"]:before,
.question-result-label[data-correct = "0"][data-incorrect-status = "2"]:before,
.question-result-label[data-correct = "0"][data-incorrect-status = "3"]:before,
.question-result-label[data-correct = "0"][data-incorrect-status = "4"]:before{
    content: "";
    background: #F00;
    color: #FFF;
    font-size: 12px;
    font-weight: bold;
    display: inline-block;
    padding: .125rem .5rem;
    border-radius: 3px;
}

.question-result-label[data-correct = "0"][data-pending = "1"]:before{
    content: "承認待ち" !important;
    background: #F00 !important;
    color: #FFF !important;
}

.question-result-label[data-correct = "0"][data-incorrect-status = "0"]:before{
    content: "";
}

.question-result-label[data-correct = "1"][data-incorrect-status = "0"]:before{
    content: "正解";
    background: #060;
    color: #FFF;
}

.question-result-label[data-correct = "0"][data-incorrect-status = "1"]:before{
    content: "スキップ";
}

.question-result-label[data-correct = "0"][data-incorrect-status = "2"]:before{
    content: "不正解";
}

.question-result-label[data-correct = "0"][data-time-over = "1"]:before{
    content: "時間切れ";
}

.chart{
    position: relative;
}

.chart-date-str {
/*    position: absolute;
    top: -70px;
    right: 0px;*/
    color: #999;
    font-size: 11px;
}

.button-radio-wrap input[type="radio"] {
  display: none;
}

.button-radio-wrap label {
  display: inline-block;
  padding: 5px 12px;
  margin: 2px;
  border: 2px solid #2d2d2d;
  border-radius: 8px;
  background: #464646;
  color: #ffffff;
  cursor: pointer;
  font-size: .875rem;
  transition: all 0.2s;
  user-select: none;
  opacity: .5;
}

.button-radio-wrap input[type="radio"]:checked + label {
  background: #3498db;
  border: 2px solid #3498db;
  color: #fff;
  font-weight: bold;
  box-shadow: 0 2px 8px rgba(52,152,219,0.2);
  opacity: 1;
}


.button-checkbox-wrap input[type="checkbox"] {
  display: none;
}

.button-checkbox-wrap label {
    display: inline-block;
    padding: 5px 12px;
    margin: 2px;
    border: 2px solid #2d2d2d;
    border-radius: 8px;
    background: #464646;
    color: #ffffff;
    cursor: pointer;
    font-size: .875rem;
    transition: all 0.2s;
    user-select: none;
    opacity: .5;
}

.category-check-box.button-checkbox-wrap label{
    font-size: .75rem;
}

.button-checkbox-wrap input[type="checkbox"]:checked + label {
  background: #e67e22;
  border: 2px solid #e67e22;
  color: #fff;
  font-weight: bold;
  box-shadow: 0 2px 8px rgba(230,126,34,0.15);
  opacity: 1;
}

.setting-item{
    display: none;
}

.taskGoalDateCheckModal{
    display: none;
}

.taskGoalDateCheckModal.show{
    display: block;
}

.checkboxDummyWrap{
    position: absolute;
    width: 100%;
    height: 100%;
    display: block;
    background: rgba(0,0,0,.0);
    z-index: 1;
    left: 0rem;
    top: 0rem;
    display: none !important;
}

input[name="largeCategory[]"],
input[name="taskItem[]"]{
    position: absolute;
    z-index: 2;
    top: calc(50% - 8px);
    left: 0;
    display: none !important;
}

input[name="largeCategory[]"]{
    top: 2px;
    left: 2px;    
}

.js-category-select-trigger{
    background: #09F;
    color: #FFF;
    font-size: 12px;
    padding: 0.125rem .25rem;
    width: 100%;
    height: 24px;
    position: absolute;
    bottom: 0px;
    left: 0;
    display: none; 
    z-index: 100;
    border-radius: 0 0 5px 5px;
}

body.setting-mode .sort-tab-wrap,
body.setting-mode .sub-category-progress-detail-wrap{
    display: none;
}

body.setting-mode .checkboxDummyWrap,
body.setting-mode .setting-item,
body.setting-mode .js-category-select-trigger{
    display: block !important;
}
body.setting-mode input[name="largeCategory[]"],
body.setting-mode input[name="taskItem[]"]{
    display: inline !important;
}

body.setting-mode .sub-category-tab-wrap .tab-item{
    background: #FFF;
    font-weight: normal;
}

/*.taskGoalDateCheckWrap{
    background: #222;
    width: 480px;
    max-width: 100vw;
    position: fixed;
    bottom: 0;
    left: calc(50% - 240px);
    margin-right: 0;
    margin-left: 0;
    z-index: 1000;
}


@media all and (max-width: 480px){

    .taskGoalDateCheckWrap{
        left: 0;
    }

}*/


.taskGoalList{
    overflow: scroll;
    max-height: 80%;
}

.taskGoalDateCheckModal{
    padding: 1rem;
    background: #FFF;
    color: #333;
    border-radius: 15px;
    position: fixed;
    z-index: 100000;
    width: 94%;
    max-width: 450px;
    height: 70%;
    top: 15%;   
}


.study-result-icon{
    position: absolute;

}



/** 
 * chart.js系のグラフ周辺UI
 * made by ChatGPT
 */

.period-nav {
  display: flex;
  justify-content: end;
  gap: .5rem;
  margin: 12px 0 8px 0;
}

.period-btn {
    display: flex;
    align-items: center;
    gap: 0.4em;
    padding: 4px 12px;
    background: #f2f4f5;
    color: #0085fa;
    border: none;
    border-radius: 999px;
    font-weight: 600;
    font-size: 12px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
    cursor: pointer;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s, transform 0.15s;
    outline: none;
}
.period-btn .icon {
  display: flex;
  align-items: center;
  line-height: 1;
  /* SVGサイズ微調整 */
  width: 1.2em;
  height: 1.2em;
}
.period-btn:hover, .period-btn:focus {
  background: #0085fa;
  color: #fff;
  box-shadow: 0 2px 8px rgba(0,133,250,0.10);
  transform: translateY(-2px) scale(1.03);
}
.period-btn:active {
  transform: scale(0.97);
}
.period-btn.prev .icon { margin-right: 0.25em; }
.period-btn.next .icon { margin-left: 0.25em; }

.embezzlement-label{
    background: #F00;
    color: #FFF;
    padding: .125rem .5rem;
    margin-right: 0.125rem;
}

.q-wrap a{
    word-wrap: break-word;
}


.category-check-box{
    display: none;
}

.category-check-box.show{
    display: block;
}

.medium-category-wrap,
.small-category-wrap{
    position: relative;
    display: inline-block;
}

/*.medium-category-wrap:before,
.small-category-wrap:before{
    position: absolute;
    content: "┗";
    left: 5px;
    top: 1px;
    display: block;
    pointer-events: none;
    color: #85888d;
}*/

.question-sub-category-title{
}

.need-help-tr .question-title:before,
.need-help-item .question-title:before{
    content: "誤";
    text-align: center;
    color: #FFF;
    font-size: .75rem;
    font-weight: bold;
    width: 1.25rem;
    aspect-ratio: 1;
    display: inline-block;
    background: #C00;
    z-index: 1;
    border-radius: 50%;
    position: relative;
    top: -2px;
}

.need-help-tr .question-title.no-icon:before,
.need-help-item .question-title.no-icon:before{
    content: "";
    display: none;
}

.need-help-tr[data-time-over="1"] .question-title:before,
.need-help-item[data-time-over="1"] .question-title:before{
    content: "時";
    background: #20354d;
}

.recently-answer-data-item .question-title:before{
    content: "";
    text-align: center;
    color: #FFF;
    font-size: .75rem;
    font-weight: bold;
    width: 1.25rem;
    height: 18px;
    aspect-ratio: 1;
    display: inline-block;
    background: #C00;
    z-index: 1;
    border-radius: 50%;
    position: relative;
    top: 2px;
}

.recently-answer-data-item[data-correct = "1"] .question-title:before{
    content: "";
    position: relative;
    left: 0;
    background: url(../img/common/correct.png) no-repeat center center;
    background-size: contain;   
}


.recently-answer-data-item[data-correct = "1"][data-review-challenge = "1"] .question-title:before{
    content: "";
    position: relative;
    left: 0;
    background: url(../img/common/icon_reviewed.png) no-repeat center center;
    background-size: contain;   
}

.recently-answer-data-item[data-correct = "0"] .question-title:before{
    content: "";
    position: relative;
    left: 0;
    background: url(../img/common/incorrect.png) no-repeat center center;
    background-size: contain;   
}

.youtube-thumb .img-fluid{
    border: 5px solid #FFF;
}

.youtube-thumb[data-ch-index = "0"],
.youtube-thumb[data-ch-index = "1"]{
    position: relative;
}

.youtube-thumb[data-ch-index = "0"]:after,
.youtube-thumb[data-ch-index = "1"]:after{
    content: "";
    width: 25px;
    height: 25px;
    display: block;
    position: absolute;
    z-index: 2;
    left: -6px;
    top: -6px;
    background: url("../img/common/star.png") no-repeat center center;
    background-size: contain;
}

.youtube-thumb.checked{
    position: relative;
}

.youtube-thumb.checked:before{
    content: "視聴済";
    display: block;
    position: absolute;
    top: 2px;
    left: 2px;
    z-index: 1;
    font-size: 10px;
    background: #797979db;
    color: #FFF;
    padding: .125rem .25rem;
    border-radius: 10px;
}


/**
 * わからないことアコーディオン
 */

.help-wrap {
    display: none;
}

.help-open-trigger{
    font-size: .875rem;
    font-weight: bold;
    text-decoration: underline;
    color: #09F;
    cursor: pointer;
    user-select: none;
}

.arrow-icon {
  transition: transform 0.3s ease;
}
.js-help-open-trigger.open .arrow-icon {
  transform: rotate(180deg);
}


/**
 * status-tag
 */

.status-tag-wrap .status-tag{
}

.status-tag-wrap .status-tag:before{
    content: "ステータス名";
    background: #999;
    color: #FFF;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
    padding: .25rem;
    margin-bottom: .125rem;
    font-size: .625rem;
}

.status-tag-wrap .status-tag[data-tag = "tmp-save"]:before{
    content: "途中保存";
    background: #999;
}

.status-tag-wrap .status-tag[data-tag = "correct"]:before{
    content: "正解";
    background: #060;
}

.status-tag-wrap .status-tag[data-tag = "past-corrected"]:before{
    content: "正解済み";
    background: #060;
}

.status-tag-wrap .status-tag[data-tag = "incorrect"]:before{
    content: "不正解";
    background: #ff5c5c;
}

.status-tag-wrap .status-tag[data-tag = "time-over"]:before{
    content: "時間切れ";
    background: #ff8f00;
}

.status-tag-wrap .status-tag[data-tag = "is-empty"]:before{
    content: "スキップ";
    background: #5e5e5e;
}

.status-tag-wrap .status-tag[data-tag = "review-challenge"]:before{
    content: "復習";
    background: #060;
}

.status-tag-wrap .status-tag[data-tag = "pending"]:before{
    content: "承認待ち";
    background: #fe1582;
}


/**
 * raw-study-time-log
 */
.end-date-empty{
    color: #ff6161;
}

.link-to-latest-need-help{
    cursor: pointer;
    border-radius: 16px;
    background: #F00;
    color: #FFF;
    font-weight: bold;
    padding: 0.125rem .5rem;
    user-select: none;
    font-size: 0.75rem;
}

.link-to-latest-need-help:hover{
    background: #C00;
}

.tmp-save-data-wrap{
    background: #EEE;
    border: 1px solid #dddddd;
    font-size: .875rem;
    color: #666;
}

.font--Roboto{
    font-family: "Roboto", sans-serif;
}

.sub-category-progress-detail-wrap tr.current > td,
.sub-category-progress-detail-wrap td.current{
    box-shadow: inset 0 0 0 9999px #FC0;
}

.sub-category-label:before{
    content: "";
    font-size: 0.625rem;
    background: #DDD;
    border-radius:10px;
    padding: .125rem .25rem;
    position: relative;
    display: inline-block;
    top: -2px;
}

.sub-category-label[data-sub-category-id = "36"]:before{
    content: "5算基";
    background-color: #003b94;
    color: #FFF;
}
.sub-category-label[data-sub-category-id = "37"]:before{
    content: "5算応";
    background-color: #003b94;
    color: #FFF;
}
.sub-category-label[data-sub-category-id = "38"]:before{
    content: "6算基";
    background-color: #003b94;
    color: #FFF;
}
.sub-category-label[data-sub-category-id = "39"]:before{
    content: "6算応";
    background-color: #003b94;
    color: #FFF;
}
.sub-category-label[data-sub-category-id = "35"]:before{
    content: "5国基";
    background-color: #005100;
    color: #FFF;
}
.sub-category-label[data-sub-category-id = "66"]:before{
    content: "6国基";
    background-color: #005100;
    color: #FFF;
}
.sub-category-label[data-sub-category-id = "74"]:before{
    content: "6国応";
    background-color: #005100;
    color: #FFF;
}
.sub-category-label[data-sub-category-id = "52"]:before{
    content: "4算基";
    background-color: #003b94;
    color: #FFF;
}



.need-help-list-wrap{
    display: none;
}

.need-help-list-wrap.active{
    display: block;
}

.nav-tabs{
    font-size: 0.75rem;
}

/* 非アクティブタブ */
.nav-tabs .nav-link {
  background-color: #f8f9fa; /* 薄いグレー背景 */
  color: #6c757d;           /* グレー文字 */
  border: 1px solid #dee2e6;
}

/* ホバー時 */
.nav-tabs .nav-link:hover {
  background-color: #e9ecef; /* ちょっと濃いグレー */
  color: #000;              /* 黒文字 */
}

/* アクティブタブ */
.nav-tabs .nav-link.active {
  background-color: #FC0; /* Bootstrapの青 */
  color: #333;
  border-color: #FC0 #FC0 #fff; /* 下境界を消すように */
  border-bottom: none;
}

.d-block-important{
    display: block !important;
}


/** わからない度ボタン */

/* ラジオボタンを非表示 */
.face-radio {
  display: none;
}

/* アイコンの基本スタイル（非選択時は薄く） */
.face-label {
    display: inline-block;
    cursor: pointer;
    margin: 0px;
    border-radius: 50%;
    max-width: 64px;
    width: 18%;
    opacity: 0.2; /* 非選択時は薄く */
    transform: scale(0.9);
    transform-origin: center;
}

.face-label img {
  max-width: 100%;
}

/* 選択された場合は濃く表示 */
.face-radio:checked + .face-label {
  opacity: 1;
  transform: scale(1);
}


/**
 * 問題スタート時オーバーレイ
 */
.timer-start-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,.9); /* 背景色 */
  z-index: 9999;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #fff;
  text-align: center;
  padding: 1rem;
}

.timer-start-overlay p {
  font-size: 1.2rem;
  margin-bottom: 1.5rem;
}

.timer-start-overlay .btn {
  min-width: 120px;
}

.question-explanation-inner-toggle{
    text-decoration: underline;
    cursor: pointer;
    user-select: none;
}

.question-explanation-inner-toggle:hover{
    text-decoration: none;
}


.admin-mark {
    width: 20px;
    height: 20px;
    color: #FFF;
    background-color: #ffcc00;
    border: 1px solid #333;
    border-radius: 50%;
    position: relative;
    display: inline-block;
    top: -1px;
    right: -1px;
    cursor: pointer;
    opacity: .6;
}
.admin-mark::hover{
    opacity: 1;
}
.admin-mark::before {
    content: "管";             
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 12px;           /* 文字サイズを調整 */
    color: #000;
}

.timer-result-wrap{
    background: #20364f;
    border: 1px solid #2b415a;
}

.timer-result-label{
    width: 100px;
    font-size: 12px;
    background: #314965;
    color: #FFF;
    text-align: center;
    display: inline-block;
    margin-right: .5rem;
}

.grad-label{
    background: #20364f;
    border: 1px solid #2b415a;
    color: #ffffff;
    font-size: .75rem;
    font-weight: 700;
    padding: .125rem .5rem;
    text-align: center;
}

.incorrect-type-label{
    width: 18px;
    aspect-ratio: 1;
    display: inline-block;
    color: #FFF;
    font-weight: 700;
    background: #FF0000;
    text-align: center;
    font-size: 0.75rem;
    user-select: none;
}



.parent-viewer-mode .ajax-wrap .alert-danger,
.parent-viewer-mode .answer-group-helped-wrap,
.parent-viewer-mode .timer-start-overlay,
.parent-viewer-mode .timer,
.parent-viewer-mode .js-question-help-trigger,
.parent-viewer-mode .kaito-midashi {
    display: none;
}


.parent-viewer-mode .small-question-form-wrap,
.parent-viewer-mode .attachment-form-wrap{
    position: relative;
    display: none;
}

.parent-viewer-mode .ajax-btn-wrap{
    display: none !important;
}

.ajax-wrap .correct-answer-wrap{
    display: none;
}

.parent-viewer-mode .ajax-wrap .correct-answer-wrap{
    display: block;
}

.goal-count[data-goal-comp = "1"]{
    position: relative;
    z-index: 0;
}

.goal-count[data-goal-comp = "1"]:before{
    z-index: -1;
    content: "";
    width: 40px;
    aspect-ratio: 1;
    display: block;
    position: absolute;
    top: -20px;
    left: 0px;
    background: url(../img/common/hanamaru.png) no-repeat center center;
    background-size: contain;
}   



/** 設定ページ */

  /* スイッチをiOS風に少し大きめに */
  .form-switch .form-check-input {
    width: 44px; height: 26px;
    background-color: #d6d6d6;
    border: none;
    cursor: pointer;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
  }
  .form-switch .form-check-input:focus {
    box-shadow: 0 0 0 .2rem rgba(13,110,253,.15);
  }
  .form-switch .form-check-input:checked {
    background-color: #0f50ab;  /* ON時の色 */
  }
  /* つまみサイズ補正（BSのデフォから微調整） */
  .form-switch .form-check-input {
    background-position: left center;
  }
  .form-switch .form-check-input:checked {
    background-position: right center;
  }


.th-icon{
    position: relative;

}
.th-icon:before{
    content: "";
    width: 1.5rem;
    height: 1.5rem;
    position: absolute;
    top: -0.5rem;
    left: -0.5rem;
}

.th-icon--reviewed:before{
    background: url(../img/common/icon_reviewed.png) no-repeat center center;
    background-size: contain;    
}

.th-icon--correct:before{
    background: url(../img/common/correct.png) no-repeat center center;
    background-size: contain;    
}

.th-icon--incorrect:before{
    background: url(../img/common/incorrect.png) no-repeat center center;
    background-size: contain;    
}

.retry-deadline--today{
    box-shadow: inset 0 0 0 9999px #ff9999 !important;
    color: #760707;
}

.header-alert[data-new-alert-num]{
    transform-origin:50% 10%;
    animation: ring 1.2s ease-out 0s 1;
}

@keyframes ring{
    0%   { transform:rotate(0deg); }
    15%  { transform:rotate(18deg); }
    30%  { transform:rotate(-14deg); }
    45%  { transform:rotate(10deg); }
    60%  { transform:rotate(-6deg); }
    75%  { transform:rotate(3deg); }
    100% { transform:rotate(0deg); }
}

/* 動きが苦手なユーザー向けにアニメ無効化 */
@media (prefers-reduced-motion: reduce){
    .bell .icon{ animation:none !important; }
}

.mabiki-form{
    user-select: none;
}

.mabiki-form .mabiki-checkbox{
    margin: 3px;
    position: relative;
    top: 2px;
    left: -3px;
}

.mabiki-medium-category-wrap.hide,
.mabiki-questions-wrap.hide{
    display: none;
}

.question-viewer .title-label{
    font-weight: bold;
    background: #DDD;
    padding: 0.25rem 0.5rem;
    margin-bottom: .5rem;
}

.mabiki-label{
    position: absolute;
    right: 0px;
    top: -22px;
    font-size: 0.625rem;
    background: #fe6464;
    color: #ffffff;
    display: inline-block;
    padding: .125rem .5rem;
}

.medium_category_label{
    display: inline-block;
    background: #20364f;
    border: 1px solid #2b415a;
    color: #ffffff;
    font-size: .875rem;
    font-weight: 700;
    padding: .125rem .5rem;
    text-align: center;
}


/* 余計な▽（caret）を消す */
.kebab-toggle.dropdown-toggle::after { display: none; }
/* タップしやすい丸ボタン */
.kebab-btn {
    width: 24px;
    height: 24px;
    padding: 0;
    display: inline-flex; 
    align-items: center;
    justify-content: center;
}

.suck-effect {
  display: inline-block;
  padding: 20px 40px;
  background: #3498db;
  color: #fff;
  font-weight: bold;
  border-radius: 10px;
  animation: suckIn 1.2s forwards;
}

@keyframes suckIn {
  0% {
    transform: scale(1) translate(0, 0);
    opacity: 1;
  }
  70% {
    transform: scale(0.4) translate(0, -20px);
    opacity: 0.7;
  }
  100% {
    transform: scale(0) translate(0, -50px);
    opacity: 0;
  }
}


#stopwatch2 .mini-display{
    display: none !important;
}

/**
 * ボタン無くす
 */
.action-button-wrap{
/*    display: none;*/
}


.skip-modal-wrap,
.result-modal-wrap{
  width: 100%;
  height: calc( 100% - 46px );
  background: #fffaf4;
  position: fixed;
  top: 46px;
  left: 0;
  overflow: auto;
  transition: .3s ease-out;
  padding: 1rem;
  z-index: 10000;
}

.result-modal-wrap{
    z-index: 10001;
}

.skip-modal-wrap[data-show = "0"],
.result-modal-wrap[data-show = "0"]{    
  opacity: 0;
  visibility: hidden;
}

.skip-modal-wrap[data-show = "1"],
.result-modal-wrap[data-show = "1"]{
  opacity: 1;
  visibility: visible;
}

.skip-modal-inner,
.result-modal-inner{
    max-width: 400px;
    width: 96%;
    margin: 0 auto;
}

.result-modal-title-text{
    font-size: 3rem;
    font-weight: 700;
    display: none;
}

.result-modal-title-text.show{
    display: block;
}

.result-modal-title-text span{
    display: inline-block;
    position: relative;
}

.result-modal-title-text span:before{
    content: "";
    font-size: 24px;
    display: block;
    width: 36px;
    height: 36px;
    background: url("../img/common/drop.png") no-repeat center center;
    background-size: contain;
    position: absolute;
    right: -15px;
    top: -45px;
    opacity: 0;    
}

.result-modal-title-text.animate__drop span:before{
    animation: drop ease-in-out 1.2s forwards;
}

@keyframes drop {
  0% {
    opacity: 0;
    top: -45px;
  }
  100%{
    opacity: 1;
    top: -10px;
  }
}

.result-modal-title-text span{
    padding-left: 2.75rem;
}

.result-modal-title-text[data-type = "correct"] span{
    background: url(../img/common/correct.png) no-repeat center left;
}

.proficiency_measure .result-modal-title-text[data-type = "correct"] span{
    background: url(../img/common/icon_reviewed.png) no-repeat center left;

}

.result-modal-title-text[data-type = "incorrect"] span,
.result-modal-title-text[data-type = "skipped"] span,
.result-modal-title-text[data-type = "timeout"] span{
    background: url(../img/common/incorrect.png) no-repeat center left;
}

.result-modal-title-text.no-incorrect[data-type = "skipped"] span{
    padding-left: 0;
    background: none;
}

.result-modal-title-sub-text{
    font-size: 1rem;
}

.book-wrap .book-list,
.youtube-list-wrap .youtube-list{
    display: flex;
    gap: 12px;                 /* カード間の余白 */
    overflow-x: auto;          /* 横スクロール */
    padding: 0;
    scroll-snap-type: x mandatory; /* スクロールスナップ(任意) */
    -webkit-overflow-scrolling: touch; /* iOS慣性スクロール */
}

.book-wrap .book-list .book-thumb,
.youtube-list-wrap .youtube-list .youtube-thumb{
    flex: 0 0 auto;            /* 折り返さず横に並べる */
    width: 200px;              /* カード幅(お好みで) */
    scroll-snap-align: start;  /* スナップ位置(任意) */
    background: #fff;
}

.book-wrap .book-list .book-thumb{
    width: 120px;
    background: transparent;
}

.book-wrap .book-list .book-thumb a
.youtube-list-wrap .youtube-list .youtube-thumb a{
    display: block;
    text-decoration: none;
    color: inherit;
}

.book-wrap .book-list img,
.youtube-list-wrap .youtube-list img{
    width: 100%;
    height: auto;
    display: block;
    border-radius: 6px;
}

/* スクロールバーを少し細く(任意) */
.book-wrap .book-list::-webkit-scrollbar, .youtube-list-wrap .youtube-list::-webkit-scrollbar{ height: 8px; }
.book-wrap .book-list::-webkit-scrollbar-thumb, .youtube-list-wrap .youtube-list::-webkit-scrollbar-thumb{
    background: #ccc; border-radius: 4px;
}

.ai-explanation-wrap .ai-explanation-inner{
/*    max-height: 240px;*/
    overflow: scroll;
    padding: 1rem;
    letter-spacing: .05em;
    line-height: 1.75;
    border: 1px solid #dcdcdc;
    font-size: .875rem;
    background: #efefef;
}

@keyframes flash-overlay {
  0%   { opacity: 0; }
  50%  { opacity: 0.8; }
  100% { opacity: 0; }
}

body.timer-warning::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: red;
  opacity: 0.7;
  pointer-events: none; /* クリック操作を邪魔しない */
  z-index: 100000;
  animation: flash-overlay .8s 3; /* 1s周期で3回点滅 */
  animation-fill-mode: forwards; /* 最後の状態を保持 */
}

.loader-target {
  position: relative;
  min-height: 48px;            /* レイアウトのガタつき防止 */
}

/* 中が完全に空の間だけ、中央にスピナーを出す */
.loader-target:empty::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 28px;
  height: 28px;
  border: 3px solid #d1d5db;   /* 薄い部分 */
  border-top-color: #111827;   /* 濃い部分 */
  border-radius: 50%;
  animation: spin .8s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }


.alert-more-danger{
    color: #ffffff;
    background-color: #c9434f;
    border-color: none;    
}

.series-status-wrap{
    position: absolute;
    right: 0;
    top: 0;
}

.series-status-link{
    font-size:.75rem;
    aspect-ratio: 1;
    display: inline-block;
    text-align: center;
    user-select: none;
    cursor: pointer;
    margin: 0 2px;
    position: relative;
}

.series-status-link.current{
    cursor: default;
    pointer-events: none;
    transform: scale(1.2);
    margin: 0 4px;
}

.series-status-link:before{
    content: "";
    top: -12px;
    left: calc( 50% - 7px );
    background-size: contain;
    position: absolute;
    width: 14px;
    height: 14px;
    display: block;    
}

.series-status-link.current{
    font-weight: bold;  
}

.series-status-link[data-status = "0"]:before{
    content: "";
    background: url(../img/common/not_started.png) no-repeat center center;
    background-size: contain;
}

.series-status-link[data-status = "1"]:before{
    content: "";
    background: url(../img/common/incorrect.png) no-repeat center center;
    background-size: contain;
}

.series-status-link[data-status = "2"]:before{
    content: "";
    background: url(../img/common/correct.png) no-repeat center center;
    background-size: contain;
}

.series-status-link[data-status = "3"]:before{
    content: "";
    background: url(../img/common/icon_reviewed.png) no-repeat center center;
    background-size: contain;
}

.gaan-lines {
  position: relative;
  overflow: hidden;
}

/* ガーン線のレイヤー */
.gaan-lines::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    to bottom,
    rgba(0,0,0,.15) 0 12px,
    transparent 12px 28px
  );
  opacity: 0;
  transform: translateY(-12px);
  pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
  mask-image: radial-gradient(circle at 50% 30%, black 0 40%, transparent 60%);
}

/* class を付けたときだけ発動 */
.gaan-lines.gaan::after {
  opacity: 1;
  transform: translateY(0);
}

.mabiki-btn-wrap{
    bottom: 50px;
    background: #243b55;
    width: 100%;
    padding: .25rem .25rem;
    left: 0;
    text-align: center;    
}

label.mabiki-question{
    font-size: .75rem;
}

.mabiki-open-toggle svg {
  width: 1em;
  height: 1em;
  vertical-align: middle;
  transition: transform .25s ease;
}

/* 開いた時に反転 */
.mabiki-open-toggle[data-state="1"] svg {
  transform: rotate(180deg);
}


.c-btn,
a.c-btn,
button.c-btn {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--cbtn-gap);
  padding: var(--cbtn-py) var(--cbtn-px);
  border-radius: var(--cbtn-radius);
  border: 1px solid transparent;
  font: var(--cbtn-fw) var(--cbtn-fz)/1 var(--cbtn-font);
  color: var(--c-on-primary);
  background: var(--c-primary);
  box-shadow: var(--cbtn-shadow);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: transform .06s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
}

/* Hover/Active */
.c-btn:hover { background: var(--c-primary-600); }
.c-btn:active { transform: translateY(0); box-shadow: 0 1px 4px rgba(0,0,0,.12); }

/* Focus visible */
.c-btn:focus-visible { outline: none; box-shadow: var(--cbtn-shadow), var(--focus-ring); }

/* Disabled */
.c-btn[disabled],
.c-btn.is-disabled,
.c-btn:disabled,
a.c-btn[aria-disabled="true"] {
  opacity: .55;
  cursor: not-allowed;
  pointer-events: none;
}

/* ====== Variants ====== */
.c-btn--secondary {
  background: var(--c-surface);
  color: var(--c-text);
  border-color: var(--c-border);
  box-shadow: none;
}
.c-btn--secondary:hover { background: #f8fafc; }

.c-btn--outline {
  background: transparent;
  color: var(--c-text);
  border-color: var(--c-border);
  box-shadow: none;
}
.c-btn--outline:hover { background: var(--c-ghost-hover); }

.c-btn--ghost {
  background: transparent;
  color: var(--c-text);
  border-color: transparent;
  box-shadow: none;
}
.c-btn--ghost:hover { background: var(--c-ghost-hover); }

/* ====== Sizes ====== */
.c-btn--sm { --cbtn-py: 0.45rem; --cbtn-px: 0.8rem; --cbtn-fz: 0.85rem; }
.c-btn--lg { --cbtn-py: 0.85rem; --cbtn-px: 1.25rem; --cbtn-fz: 1.05rem; }

/* アイコンのみ */
.c-btn--icon {
  --cbtn-py: 0.55rem;
  --cbtn-px: 0.55rem;
  aspect-ratio: 1/1;
  padding: var(--cbtn-py);
}
.c-btn > svg,
.c-btn > i { inline-size: 1.1em; block-size: 1.1em; }



/** ヘルプ */
.help-item{
    margin-bottom: 1rem;
}

.help-item-q{
    font-weight: bold;
    font-size: 1.15rem;
    margin-bottom: 0.25rem;
    padding-left: 1.5rem;
    position: relative;
}

.help-item-q:before{
    content: "Q:";
    position: absolute;
    top: 0;
    left: 0;
}

.help-item-a{
    font-size: .875rem;
    position: relative;
    padding-left: 1.5rem;
}

.help-item-a:before{
    content: "A:";
    position: absolute;
    top: 0;
    left: 0.375rem;
}

.free-space-1{
    height: 48px;
}

.free-space-2{
    height: 72px;
}

.free-space-3{
    height: 90px;
}

.ai-arrange-q-content-wrap[data-show = "0"]{
    display: none;
}

.ai-arrange-q-content-wrap[data-show = "1"]{
    display: block;
}

.ai-arrange-q-content-str-wrap{
    letter-spacing: .05em;
    line-height: 1.75;
    background: #FFF;
    color: #333;
    border: 1px solid #EEE;
}

.ai-arrange-a-content-str-wrap{
    letter-spacing: .05em;
    line-height: 1.75;
    background: #DDD;
    color: #333;
    border: 1px solid #CCC;    
}

.bg-houby-kun{
    background: url(../img/common/houby_kun.png) no-repeat center top;
    background-size: 100px 100px;
}

.sonar-loop {
  position: relative;
  z-index: 1;
}

/* 波紋のベース */
.sonar-loop::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 150%;
  height: 150%;
  border-radius: .25rem;
  background: rgb(221 51 51);
  transform: translate(-50%, -50%) scale(0);
  z-index: -1;
  animation: sonarPulse 3.3s infinite;
}

/* 2つ目をずらして連続的に */

@keyframes sonarPulse {
  0% {
    transform: translate(-50%, -50%) scale(0);
    opacity: 0.8;
  }
  100% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0;
  }
}

.hyoushi{
    background: rgba(255,255,255,.92);
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1028;
    padding: 1rem;
    backdrop-filter: blur(1px);
}

.hyoushi:before{
    content: "";
    width: 60px;
    height: 8px;
    background: #111;
    position: absolute;
    display: block;
    left: 0;
    top: 15vh;
}


.hyoushi-attention-wrap{
    border: 1px solid #999;
}

.timer{
    position: relative;
    z-index: 1029;
}

.proficiency-test-score-wrap{
    position: relative;
}

.proficiency-test-score-str-wrap{
    position: absolute;
    right: 0px;
    top: -50px;
}

.proficiency-test-score{
    font-size: 5rem;
    color: #F00;
    line-height: 1.1;
    display: inline-block;
    border-bottom: double 10px #ff0000;
}

.proficiency-test-score:before{
}

.proficiency-test-result{
    position: relative;
}

.proficiency-test-result:before{
    content: "";
    position: absolute;
    pointer-events: none;
    width: 60px;
    height: 50px;
    left: -20px;
    top: -3px !important;
    display: block;
    background-size: contain;
}

.proficiency-test-result[data-correct = "0"]:before{
    background: url("../img/common/correct_0.png") no-repeat center center;
    background-size: contain;
}
.proficiency-test-result[data-correct = "1"]:before{
    background: url("../img/common/correct_1.png") no-repeat center center;
    background-size: contain;    
}

.q-group-wrap{
    position: relative;
    padding-left: 1.5rem;
}

.q-group-wrap:before{
    content: "";
    position: absolute;
    pointer-events: none;
    width: 60px;
    height: 50px;
    left: -20px;
    top: -3px !important;
    display: block;
    background-size: contain;
}

.q-group-wrap[data-correct = "0"]:before{
    background: url("../img/common/correct_0.png") no-repeat center center;
    background-size: contain;
}

.q-group-wrap[data-correct = "1"]:before{
    background: url("../img/common/correct_1.png") no-repeat center center;
    background-size: contain;       
}

.daimon-num{
    width: 32px;
    aspect-ratio: 1;
    display: inline-block;
    border: 1px solid #444;
    font-size: 20px;
    text-align: center;
}

.nishi-btn-icon{
    display: inline-block;
    position: absolute;
    left: calc(50% - 120px);
    top: calc(50% - 22px);
}

.current-goal-data-wrap{
    border: 1px solid #EEE;
    background: #FFF;
    color: #333;
    margin-bottom: 1rem;
    padding: .5rem;
    text-align: center;
}

.current-goal-num-str{
    font-weight: bold;
    padding: 0 .25rem;
    display: inline-block;
    animation: purun 0.8s ease;
}

.setting-list-wrap{
    margin-bottom: 1rem;
    font-family: "Noto Sans JP";
}

.setting-item-wrap{
    margin-bottom: 1rem;
    font-size: 0.875rem;
    line-height: 1.66;
}

.setting-item-question-num{
    display: inline-block;
    font-size: 0.625rem;
    padding-left: .25rem;
}

.setting-item-wrap .setting-item{
    display: inline-block;
    margin-right: .5rem;
    user-select: none;
}

.setting-item-wrap .setting-item .icon{
    padding-left: 1.1rem;
}

.setting-item-wrap .medium-category-list-wrap{
    padding-left: 1.375rem;
}

.setting-item-wrap .setting-item input[type = "date"]{
    width: 140px;
    margin-left: .5rem;
    display: inline-block;
}


.setting-item-wrap .setting-item input[type="date"],
.setting-item-wrap .setting-item .label-body {
  opacity: 0.4;
  transition: opacity .2s;
}

.setting-item-wrap .setting-item input:checked ~ input[type="date"],
.setting-item-wrap .setting-item input:checked ~ .label-body {
  opacity: 1;
}

.old-setting-list-wrap
{
    background: #20364f;
    border: 1px solid #2b415a;
    color: #ffffff;
    padding: 1rem;
    margin-bottom: 1rem;
}

.old-setting-detail-wrap{
    background: #1d2e43;
    border: 1px solid #2b415a;
    color: #ffffff;
    padding: 1rem;
    margin-bottom: 1rem;    
}

.tooltip-box {
    position: absolute;
    background: rgba(0, 0, 0, 0.85);
    color: #fff;
    padding: 6px 10px;
    border-radius: 4px;
    font-size: 12px;
    white-space: pre-wrap;
    max-width: 400px;
    z-index: 9999;
    pointer-events: none;
    line-height: 1.4;
    transform: translateY(-100%);
    margin-top: -10px;
}

.old-setting-detail-trigger{
    cursor: pointer;
    text-decoration: underline;
}

.old-setting-detail-trigger:hover{
    text-decoration: none;
}

.text-page-num-wrap{
    font-size: .875rem;
}

.text-page-num-wrap b{
    font-size: 1.0625rem;
}

.proficiency-test-title{
}

.proficiency-test-title[data-is-half = "1"]:after{
    content: "ハーフ";
    color: #FFF;
    background: #1e3149;
    border-radius: 2px;
    font-size: 0.625rem;
    display: inline-block;
    margin-left: 0.25rem;
    padding: 0 .25rem;
    position: relative;
    top: -2px;
}


.q-num-wrap[data-current = "1"] .q-num-item[data-index = "1"],
.q-num-wrap[data-current = "2"] .q-num-item[data-index = "2"],
.q-num-wrap[data-current = "3"] .q-num-item[data-index = "3"],
.q-num-wrap[data-current = "4"] .q-num-item[data-index = "4"],
.q-num-wrap[data-current = "5"] .q-num-item[data-index = "5"],
.q-num-wrap[data-current = "6"] .q-num-item[data-index = "6"],
.q-num-wrap[data-current = "7"] .q-num-item[data-index = "7"],
.q-num-wrap[data-current = "8"] .q-num-item[data-index = "8"],
.q-num-wrap[data-current = "9"] .q-num-item[data-index = "9"]{
    border-bottom: 2px solid #FFCC00;
}

.q-num-wrap[data-current = "1"] .q-num-item[data-index = "2"] .icon:before,
.q-num-wrap[data-current = "1"] .q-num-item[data-index = "3"] .icon:before,
.q-num-wrap[data-current = "1"] .q-num-item[data-index = "4"] .icon:before,
.q-num-wrap[data-current = "1"] .q-num-item[data-index = "5"] .icon:before,
.q-num-wrap[data-current = "1"] .q-num-item[data-index = "6"] .icon:before,
.q-num-wrap[data-current = "1"] .q-num-item[data-index = "7"] .icon:before,
.q-num-wrap[data-current = "1"] .q-num-item[data-index = "8"] .icon:before,
.q-num-wrap[data-current = "1"] .q-num-item[data-index = "9"] .icon:before,
.q-num-wrap[data-current = "2"] .q-num-item[data-index = "3"] .icon:before,
.q-num-wrap[data-current = "2"] .q-num-item[data-index = "4"] .icon:before,
.q-num-wrap[data-current = "2"] .q-num-item[data-index = "5"] .icon:before,
.q-num-wrap[data-current = "2"] .q-num-item[data-index = "6"] .icon:before,
.q-num-wrap[data-current = "2"] .q-num-item[data-index = "7"] .icon:before,
.q-num-wrap[data-current = "2"] .q-num-item[data-index = "8"] .icon:before,
.q-num-wrap[data-current = "2"] .q-num-item[data-index = "9"] .icon:before,
.q-num-wrap[data-current = "3"] .q-num-item[data-index = "4"] .icon:before,
.q-num-wrap[data-current = "3"] .q-num-item[data-index = "5"] .icon:before,
.q-num-wrap[data-current = "3"] .q-num-item[data-index = "6"] .icon:before,
.q-num-wrap[data-current = "3"] .q-num-item[data-index = "7"] .icon:before,
.q-num-wrap[data-current = "3"] .q-num-item[data-index = "8"] .icon:before,
.q-num-wrap[data-current = "3"] .q-num-item[data-index = "9"] .icon:before,
.q-num-wrap[data-current = "4"] .q-num-item[data-index = "5"] .icon:before,
.q-num-wrap[data-current = "4"] .q-num-item[data-index = "6"] .icon:before,
.q-num-wrap[data-current = "4"] .q-num-item[data-index = "7"] .icon:before,
.q-num-wrap[data-current = "4"] .q-num-item[data-index = "8"] .icon:before,
.q-num-wrap[data-current = "4"] .q-num-item[data-index = "9"] .icon:before,
.q-num-wrap[data-current = "5"] .q-num-item[data-index = "6"] .icon:before,
.q-num-wrap[data-current = "5"] .q-num-item[data-index = "7"] .icon:before,
.q-num-wrap[data-current = "5"] .q-num-item[data-index = "8"] .icon:before,
.q-num-wrap[data-current = "5"] .q-num-item[data-index = "9"] .icon:before,
.q-num-wrap[data-current = "6"] .q-num-item[data-index = "7"] .icon:before,
.q-num-wrap[data-current = "6"] .q-num-item[data-index = "8"] .icon:before,
.q-num-wrap[data-current = "6"] .q-num-item[data-index = "9"] .icon:before,
.q-num-wrap[data-current = "7"] .q-num-item[data-index = "8"] .icon:before,
.q-num-wrap[data-current = "7"] .q-num-item[data-index = "9"] .icon:before,
.q-num-wrap[data-current = "8"] .q-num-item[data-index = "9"] .icon:before{
    content: "";
    position: absolute;
    left: 0;
    background: url(../img/common/icon_question.png) no-repeat center center !important;
    background-size: contain !important;
}

.status-transition-history-label{
    font-size: 10px;
    line-height: 1;
    display: inline-block !important;
    width: auto !important;
    margin-right: 0.25rem;
    padding: 2px 5px 1px;
    background: rgba(0, 0, 0, .125);
    color: #333;
    text-align: center;
    border-radius: 2px;
}

.assignment-result .status-transition-history-label{
    color: #FFF;
}

/*.status-transition-history-inner:before{
    width: 14px;
    height: 14px;
    display: inline-block;
    content: "新";
    font-size: .625rem;
    color: #FFF;
    background: #223750;
    border-radius: 10px;
    text-align: center;
    position: relative;
    top: -2px;
}

.status-transition-history-inner:after{
    width: 14px;
    height: 14px;
    display: inline-block;
    content: "古";
    font-size: .625rem;
    color: #FFF;
    background: #223750;
    border-radius: 10px;
    text-align: center;
    position: relative;
    top: -2px;
}*/
.status-transition-history-inner .study-time-str{
    width: 55px;
    text-align: right;
    display: inline-block;
}
.status-transition-history-inner .label{
    font-size: 0.625rem;
    display: inline-block;
    background: #CCC;
    color: #333;
    text-align: center;
    padding: 0 .125rem;
    margin-left: .25rem;
    vertical-align: middle;
    position: relative;
    top: -1px;
}

.status-transition-history-inner .label[data-label="need_help"]{
    background: #F00;
    color: #FFF;
}

.status-transition-history-inner .label[data-label="time_over"]{
    background: #888;
    color: #FFF;
}

.status-transition-history-wrap .icon.large{
    transform: scale(1.5);
    margin: 0 .25rem;
}

.overflow-table-wrap{
/*    overflow-x: scroll;*/
}

.overflow-table-wrap table{
/*    table-layout: fixed;*/
}

/**
.overflow-table-wrap td:first-child {
  position: sticky;
  left: 0;
  background: #f7f7f7;
  z-index: 2;
}
**/


.overflow-table-wrap thead th{
  position: sticky;
  top: 52px;
  background: #fff;
  z-index: 10;
  border-bottom: 2px solid #333;
  padding: 10px 5px !important;
  text-align: center;
}

.tablesorter-default thead .tablesorter-headerDesc, .tablesorter-default thead .tablesorter-headerAsc{
    background-color: #EEE;
}

.tablesorter-default{
    font: 12px / 18px Arial, Sans-serif;
}

.table-striped>tbody>tr.attention{
    --bs-table-accent-bg: #ffb2b2;
}

.table-striped>tbody>tr.attention:nth-of-type(odd){
    --bs-table-accent-bg: #ffb2b2;
}

.table-striped>tbody>tr.attention:nth-of-type(even){
    --bs-table-accent-bg: #fca6a6;
}

.table-striped>tbody>tr:nth-of-type(odd):not(.attention) .important-column{
    background: #e4e4e4;
}

.table-striped>tbody>tr:nth-of-type(even):not(.attention) .important-column{
    background: #f2f2f2;
}

.table-striped>tbody>tr.attention:nth-of-type(odd) .important-column{
    box-shadow: inset 0 0 0 9999px #ffa3a3;
}

.table-striped>tbody>tr.attention:nth-of-type(even) .important-column{
    box-shadow: inset 0 0 0 9999px #f39494;
}

.question-group-icon{
    width: 14px;
    height: 14px;
    display: inline-block;
    border-radius: 7px;
    background: #000;
    position: relative;
    top: -1px;
    margin-right: 2px;
    line-height: 1.5;
}
.question-group-icon[data-group = "1"]{
    background: #5d59ff;
    font-size: 10px;
    color: #FFF;
    text-align: center;
}
.question-group-icon[data-group = "1"]:before{
    content: "計";
}

.question-group-icon[data-group = "2"]{
    background: #2e9030;
    font-size: 10px;
    color: #FFF;
    text-align: center;
}
.question-group-icon[data-group = "2"]:before{
    content: "文";
}

.question-group-icon[data-group = "3"]{
    background: #d9834e;
    font-size: 10px;
    color: #FFF;
    text-align: center;
}
.question-group-icon[data-group = "3"]:before{
    content: "図";
}

.question-group-icon[data-group = "9"]{
    background: #888;
    font-size: 10px;
    color: #FFF;
    text-align: center;
}
.question-group-icon[data-group = "9"]:before{
    content: "他";
}

body[data-current="home"] #rate-table-3{
    display: none;
}

.status-transition-history-inner{
    font-size: 13px;
}

.js-trigger-transition-history-inner{
    font-size: 12px;
}

.m-old-comment-wrap{
    margin-bottom: 1.5rem;
    max-height: 30vh;
    overflow-y: scroll;
}

.m-old-comment-wrap:empty{
    margin-bottom: 0;
}

.m-old-comment-item {
    background: #f5f5f5;
    padding-left: 45px !important;
}

.m-comment-icon{
    margin-left: -38px;
}

.study-sapuri-wrap{
}

.small-label{
    font-size: 12px;
    display: inline-block;
    padding: .125rem .5rem;
    text-align: center;
    background: #DDD;
    color: #333;
    border-radius: 2px;
}
.js-copy-text-trigger{
    cursor: pointer;
}
.js-copy-text{
    display: none;
}




.select-sub-group-name{
    padding-left: 2rem;
    position: relative;
}

.select-sub-group-name:before{
    content: "┗";
    position: absolute;
    font-size: 1.3em;
    left: 0;
    top: 0;
}

.select-third-group-name{
    padding-left: 4rem;
    position: relative;
}

.select-third-group-name:before{
    content: "┗";
    position: absolute;
    font-size: 1.3em;
    left: 2rem;
    top: 0;
}


/* 画像のUI寄せ */
.sy-ui{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap: 5px;
}

.sy-ui .sy-time{
    font-variant-numeric: tabular-nums;
    font-size:100px;
    line-height:1;
    font-weight:700;
    color:#6f6f6f;
    letter-spacing:1px;
    /* “手書きっぽさ”を少し寄せる（環境フォントで近いのを優先） */
    font-family: "M PLUS Rounded 1c","Nunito","Rounded Mplus 1c",system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans JP",sans-serif;
}

.sy-ui .sy-mode{
    display:flex;
    gap:8px;
    margin-top: 1rem;
}

.sy-ui .sy-btn{
    border:0;
    border-radius:3px;
    padding:6px 16px;
    font-size: 1rem;
    font-weight:700;
    line-height:1.2;
}

.sy-ui .sy-btn.is-active{
    background:#0d6efd; /* bootstrap primary */
    color:#fff;
}
.sy-ui .sy-btn.is-idle{
    background:#d9d9d9;
    color:#fff;
}

.sy-ui .sy-presets{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    justify-content:center;
}

.sy-ui .sy-preset{
  border:0;
  border-radius:3px;
  padding:6px 14px;
  font-size:13px;
  font-weight:700;
  line-height:1.2;
}

.sy-ui .sy-preset.is-idle{
  background:#d9d9d9;
  color:#fff;
}

.sy-ui .sy-preset.is-active{
  background:#0d6efd;
  color:#fff;
}

.sy-ui .sy-custom{
    display:none;
    margin-top:6px;
}
.sy-ui .sy-custom input{
    width:160px;
}

/* 要件：小さく 経過/残り/中断 を表示 */
.sy-ui .sy-sub{
    font-variant-numeric: tabular-nums;
    font-size:12px;
    color:#707070;
    font-weight: bold;
    min-height:18px;
    margin-top:2px;
    text-align:center;
}
.sy-ui .sy-sub:empty{
    min-height: 0px;
}
.sy-ui .sy-sub .sy-chip{
    display:inline-block;
/*    background:rgba(0,0,0,0.06);*/
    border-radius:999px;
    padding:2px 8px;
    margin:0 4px 4px 0;
}

.sy-ui.is-overtime .sy-time{
    color: #dc3545; /* bootstrap danger */
}

.freeRestart,
.freeEnd,
.timer-start,
.timer-stop,
.timer-stop-added-over{
    position: fixed;
    width: 100px;
    display: block;
    aspect-ratio: 1;
    border-radius: 50px;
    left: calc( 50% - 50px );
    bottom: 15px;
    z-index: 1;
    transition: left .3s;
}

.timer-stop-added-over{
    width: 86px;
    left: calc( 50% - 43px );
    bottom: 22px;
}

/*
.is-overtime--body .timer-stop{
    left: calc( 50% - 105px );
}

.is-overtime--body .timer-stop-added-over{
    left: calc( 50% + 15px );
    display: block !important;
}
*/

.freeRestart{
    left: auto;
    right: .75rem;
}

.freeEnd{
    left: .75rem;
}

@media screen and (min-width: 481px) {

    .freeRestart{
        left: calc(50% + 140px);
        right: auto;
    }

    .freeEnd{
        left: calc(50% - 240px);
    }

} 

.freeRestart:before,
.timer-start:before{
    content: "";
    position: absolute;
    top: 33%;
    left: 50%;
    transform: translate(-40%, -50%);
    width: 0;
    height: 0;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-left: 18px solid #fff;
}

.timer-start:after{
    content: "";
    z-index: -1;
    width: 110px;
    aspect-ratio: 1;
    position: absolute;
    border-radius: 55px;
    border: 2px solid #0d6efd;
    left: calc(50% - 55px);
    bottom: -6px;
    animation: timer-start-border 2.4s ease-out infinite;
}

.freeRestart:after{
    animation: none;
}


@keyframes timer-start-border {

  0% {
    transform: scale(1);
    opacity: 0;
  }

  33% {
    opacity: 1;
  }

  66% {
    transform: scale(1.1);
    opacity: 0;
  }

  100% {
    transform: scale(1);
    opacity: 0;
  }

}


.freeEnd:before,
.timer-stop:before{
    content: "";
    position: absolute;
    top: 24%;
    left: 50%;
    transform: translate(-50%);
    width: 18px;
    height: 18px;
    background: #FFF;
}

.timer-stop-added-over:before{
    content: "";
    position: absolute;
    top: 24%;
    left: 50%;
    transform: translate(-50%);
    width: 16px;
    height: 16px;
    background: #FFF;
}

.freeRestart .text,
.freeEnd .text,
.timer-start .text,
.timer-stop .text{
    font-size: 18px;
    font-weight: bold;
    font-family: "Noto Sans JP";
    display: inline-block;
    padding-top: 20px;
}

.freeRestart .text,
.freeEnd .text{
    padding-top: 45px;
    font-size: 14px;
    line-height: 1.2;
}

.freeEnd .text{
    padding-top: 52px;
}


.timer-stop-added-over .text{
    font-size: 11px;
    font-weight: bold;
    font-family: "Noto Sans JP";
    display: inline-block;
    line-height: 1.1;
    padding-top: 30px;
}


.timer-pause,
.timer-resume{
    position: fixed;
    width: 48px;
    display: block;
    aspect-ratio: 1.33;
    border-radius: 3px;
    right: calc(50vw - 170px);
    top: 100px;
    z-index: 1;    
}


.timer-pause::before,
.timer-pause::after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 6px;
    height: 16px;
    background: #333;
}

.timer-pause::before {
    left: 50%;
    margin-left: -8px;
}

.timer-pause::after {
    left: 50%;
    margin-left: 2px;
}

.timer-resume::before{
    content: "";
    position: absolute;
    top: 50%;
    transform: translate(-40%, -50%);
    width: 0;
    height: 0;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-left: 18px solid #fff;    
}

.sy-image-grid{
    width: 60%;
}

.sy-image-slot{
    display:block;
    position:relative;
    width:100%;
    aspect-ratio: 1 / 1;           /* 正方形枠 */
    border: 1px dashed #d6dbe1;
    border-radius:5px;
    background: #FFF;
    cursor:pointer;
    overflow:hidden;
    transition: .15s ease;
}

.sy-image-slot:hover{
    border-color:#b7c3d1;
    background:#f7f9fb;
}

.sy-image-slot:focus-within{
    outline: none;
    box-shadow: 0 0 0 .2rem rgba(0,123,255,.15); /* bootstrapっぽい */
    border-color:#8fb7ff;
}

.sy-image-empty{
    height:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    color:#6c757d;
    gap:6px;
}

.sy-image-icon {
    width: 24px;
    height: 24px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
}

.sy-image-text{
    font-size: 11px;
}

.sy-image-preview{
    position:absolute;
    inset:0;
}

.sy-image-thumb{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.sy-image-remove{
    position: absolute;
    top: 4px;
    right: 4px;
    width: 24px;
    height: 24px;
    padding: 0;
    border-radius: 999px;
    line-height: 22px;
    text-align: center;
    font-weight: 700;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}

.sy-image-slot.is-disabled{
    opacity:.45;
    cursor:not-allowed;
}

.sy-image-slot.is-disabled *{
    pointer-events:none;
}

.group-wrap .group-name{
    font-weight: bold;
    font-size: 1.25rem;
}

.group-wrap .sub-group-name{
    font-size: 1.125rem;
    padding: .25rem 0 .25rem 2rem;
    position: relative;
}

.group-wrap .sub-group-name:before{
    content: "┗";
    position: absolute;
    font-size: 1.3em;
    left: 0;
    top: 0;
}

.group-wrap .third-group-name{
    font-size: 1rem;
    padding: 0 0 0 4rem;
    position: relative;
}

.group-wrap .third-group-name:before{
    content: "┗";
    position: absolute;
    font-size: 1.3em;
    left: 2rem;
    top: 0;
}

.comment-wrap textarea{
    field-sizing: content;
    min-height: 7rem;
}

.gray{
    color: #707070;
}

.op-7{
    opacity: .7;
}

.after-wrap hr{
    margin: 1.5rem 0;
}

.pb-10{
    padding-bottom: 8rem !important;
}

.time-wrap .time-str{
    font-size: 1.75rem;
    line-height: 1.125;
    margin-bottom: .375rem;
    font-weight: bold;
}

.time-wrap .sub-time-str{
    font-size: .875rem;
    color: #707070;
}

.history-item{
    margin-bottom: .5rem;
}

.history-item-detail-wrap{
    position: relative;
    padding-bottom: 1rem;
}

.history-item-show-wrap{
    cursor: pointer;
    font-size: .875rem;
}

.history-item-name{
    position: relative;
    user-select: none;
}

.history-item-name .target-icon-wrap{
    position: absolute;
    right: 0;
}

.history-item-name .target-icon-wrap[data-status = "1"],
.history-item-name .target-icon-wrap[data-status = "3"]{
    right: 36px;
}

.history-item-name .target-icon-wrap[data-status = "1"]:before{
    content: "";
    width: 36px;
    height: 18px;
    background: url(/img/common/result_status_1.png) no-repeat;
    background-size: contain;
    display: block;
    position: absolute;
    right: -36px;
    top: calc( 50% - 9px );
}

.history-item-name .target-icon-wrap[data-status = "2"]:before{
    content: "";
    width: 36px;
    height: 18px;
    background: url(/img/common/result_status_2.png) no-repeat;
    background-size: contain;
    display: block;
    position: absolute;
    right: 24px;
    top: calc( 50% - 9px );
}


.history-item-name .target-icon-wrap[data-status = "3"]:before{
    content: "";
    width: 36px;
    height: 18px;
    background: url(/img/common/result_status_3.png) no-repeat;
    background-size: contain;
    display: block;
    position: absolute;
    right: -36px;
    top: calc( 50% - 9px );
}

.history-item-detail-wrap:before{
    content: "";
    width: 1px;
    height: 100%;
    border-left: 1px dashed #999;
    display: block;
    position: absolute;
    left: .5rem;
    top: 0;
}

.history-item-time{
    text-decoration: underline;
    user-select: none;
}

.history-item-time:hover{
    text-decoration: none;
}

.history-item-detail-comment{
    font-size: 0.875rem;
}

.history-item-detail-images{
    margin-top: .25rem;
    width: 70%;
}

.history-item-detail-images img{
    border-radius: 5px;
    max-width: 100%;
    transition: transform .2s;
    transform-origin: center center;
}

.history-item-detail-images img:hover{
    transform: scale(1.05);
}

.group-reset-trigger{
    font-size: 0.75rem;
    font-weight: normal;
}

.timer-wrap{
    width: 100%;
    transition: width .3s;
    position: sticky;
    top: 48px;
    z-index: 1;
    padding: 1rem 0;
    background: #fff3e4;
    border: 1px solid #ffe7c9;
    border-top: none;
    border-radius: 0 0 10px 10px;
}

.timer-wrap .sy-ui.short{
    width: 85%;
}

.history-item-third-group-name{
    font-size: 12px;
    font-weight: normal;
    color: #606060;
}

.study-data-score-wrap{
    position: absolute;
    right: 1rem;
    top: 1.25rem;
}





.q-reason-toggle-wrap{
    position: relative;
    display: none;
}

.q-reason-toggle-wrap.show-toggle{
}

body.is-reason-selecting .js-want-teach-trigger{
    display: none;
}
body.is-reason-selecting .q-reason-toggle-wrap.show-toggle{
    display: block;
}

.q-reason-toggle-wrap .abs-wrap{
    position: absolute;
    left: calc(40% + 1rem);
    top: 0;
    z-index: 1;
}

.radio-button-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* ラジオボタンは隠す */
.radio-button-group input[type="radio"] {
  display: none;
}

/* ボタン風 label */
.radio-button-group label {
  display: block;
  padding: .5rem 1rem;
  border-radius: 5px;
  background: #f2f2f2;
  color: #999;
  text-align: center;
  cursor: pointer;
  transition: all .2s ease;
}

/* ホバー */
.radio-button-group label:hover {
  background: #DDD;
  color: #444;
}

/* 選択中 */
.radio-button-group input[type="radio"]:checked + label {
  background: #0d6efd;
  color: #FFF;
}

.isExamEmptyLabel{
    font-weight: normal;
    margin-bottom: 0 !important;
    padding: .125rem .25rem;
}


.form-select.hide{
    opacity: .3;
    pointer-events: none;
    user-select: none;
}

.question-regist-form-item{
    position: relative;
}

.question-regist-form-item[data-group = 'sub'].hide{
    opacity: .3;
    pointer-events: none;
    user-select: none;
}

.question-regist-form-item[data-group = 'sub']:before {
    content: "┗";
    position: absolute;
    font-size: 1.3em;
    left: -4px;
    top: -3px;
}

.question-regist-form-item[data-group = 'third'].hide{
    display: none;
}

.question-regist-form-item[data-group = 'third']:before {
    content: "┗";
    position: absolute;
    font-size: 1.3em;
    left: 1rem;
    top: -3px;
}

.ps-8{
    padding-left: 3rem !important;
}


.js-confirm-group{
    font-size: 1.25rem;
    font-weight: bold;
}

.js-confirm-sub-group{
    font-size: 1.125rem;
    font-weight: bold;
}