

/* ============== week_record ============== */



.week-wrap {
    width: 100%;
    padding: 8px 40px 8px 12px;
    font-size: 16px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff url('../img/arr_down.svg') no-repeat right 12px center/10px 12px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    outline: none;
    color: #555;
    box-sizing: border-box;
    margin-bottom: 0;
}

/* IE용 화살표 제거 */
select.week-wrap::-ms-expand {
    display: none;
}

.page-title { font-size: 24px; font-weight: 700; margin: 0 0 20px 0; }
.chart-filter { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px;}
.chart-filter button { padding: 12px; border-radius: 10px; border: none; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.1s ease-in-out; }
.chart-filter button.active { background-color: var(--primary-color); color: var(--white-color); }
.chart-filter button.inactive { background-color: var(--primary-color-light); color: var(--primary-color); }
.chart {border-radius: 10px; box-shadow: var(--card-shadow); padding: 20px; background:#fff;margin:30px 20px;aspect-ratio: 1/1;}


/* ============== week_record ============== */





/* ============== goal ============== */



.section-title h2 {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 15px;
}

.dyspnea-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.dyspnea-card p {
    font-weight: 500;
    line-height: 1.3;
    color: var(--text-color-primary);
}

.dyspnea-level {
    display: flex;
    align-items: center;
    gap: 8px;
}

.dyspnea-card figure {
    width:26px;height:26px;
}
.dyspnea-card figure img {
    width:100%;
    height:100%;
    object-fit: cover;
}


.dyspnea-level span {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-color-primary);
}

.goal-guide {
    background: #fff;
    padding-top:25px;
    padding-bottom:30px;
    border-radius: 10px;
}

.guide-cards-container {
    display: flex;
    justify-content: space-between;
    gap: 10px;
}

.guide-card {
    display: flex;
    gap:10px;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    border: 1px solid var(--border-color);
    min-height: 125px;
    text-align: center;
}

.guide-card .card-title {
    word-break: keep-all;
    font-size: 16px;
    font-weight: 700;
}

.guide-card figure {
    height:50px;
}

.guide-card figure img {
    width:100%;
    height:100%;
    object-fit: contain;
}

.guide-card .card-value {
    font-size: 16px;
    word-break:keep-all;
    font-weight: 500;
}

.self-management-goals .goal-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.selfgoal-wrap {
    display:flex;
    flex-direction: column;
    gap:10px;
}

.goal-item .item-title {
    font-size: 16px;
    font-weight: 700;
}

.goal-item .item-value {
    font-size: 16px;
    font-weight: 500;
    padding-bottom: 2px;
}

.goal-item {
    position: relative;
}

.goal-item .item-value::after {
    display: block;
    content: "";
    width:130px;
    height: 1px;
    background:#ddd;
    position: absolute;
    bottom:15px;
    right:20px;
}

.goal-item .item-value em {
    font-size:18px;
    font-weight: 700;
}


/* ============== goal ============== */


/* ============== qna ============== */


.qna-box-wrap {
    display:flex;
    flex-direction: column;
    gap:10px;
}

.qna-box-wrap i {
    color: #666;
    font-size:14px;
}

.qna-box-wrap span {
    font-size:16px;
}

.qna-box-wrap em {
    font-size:24px;
    line-height:1;
}

.section-title h2 {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 15px;
}

.action-button, .status-button {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 700;
    text-decoration: none;
}

.action-button {
    background: #fff;
    border: 1px solid var(--border-color); 
}

.status-button {
    color: var(--white-color);
}
.status-button.completed {
    background-color: var(--primary-color);
}
.status-button.pending {
    background-color: #bbb;
}

.status-button .count {
    font-size: 1.5rem;
    font-weight: 700;
}

.qna-list-container {
    border-top :1px solid var(--border-color);
}

.qna-item {
    border-bottom: 1px solid var(--border-color);
}

.qna-question {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px ;
    cursor: pointer;
    gap:10px;
}

.qna-question-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;flex-wrap: wrap;
}

.status-badge {
    color: #fff;
    font-size: 16px;
    padding: 3px 10px;
    border-radius: 100px;
    font-weight: 500;
}
.status-badge.completed {
    background-color: var(--primary-color);
}
.status-badge.pending {
    background-color: #bbb;
}

.qna-question-title span {
    color: var(--text-color-primary);
    word-break: keep-all;
}

.qna-question-title span.completed,.qna-question-title span.pending {
    color: #fff;
    font-size:14px;
}

.qna-question .chevron {
    color: var(--text-color-primary);
}

.qna-answer {
    display: none;
    padding: 20px;
    color: var(--text-color-secondary);
    line-height: 1.5;
    background-color: var(--background-color);
    border-top:1px solid var(--border-color)
}

.qna-item .arrow i { 
    font-size: 12px; transition: transform 0.3s ease-out; 
}

.qna-item.active .arrow i { 
    transform: rotate(180deg); }


/* ============== qna ============== */



/* ============== mypage ============== */


:root {
    --secondary-color: #4EAAFF;
    --text-tertiary: #999999;
    --disabled-color: #DDDDDD;
}


.main-content { flex-grow: 1; overflow-y: auto;}


.section-title-container { display: flex; justify-content: space-between; align-items: center; }

.today-status-cards { display: flex; gap: 10px;}
.status-card {
    flex: 1; display: flex; flex-direction: column; align-items: center;
    gap: 10px; justify-content: space-between;
}
.status-card .card-title {  font-weight: 700;word-break: keep-all;text-align: center;}
.status-card .check-icon { font-size: 2.5rem; }
.status-card .check-icon.completed { color: var(--primary-color); }
.status-card .check-icon.pending { color: var(--disabled-color); }
.status-card .card-status {font-weight: 500;word-break: keep-all;text-align: center;}

.status-card figure {
    width:40px;
    height:40px;
}

.status-card figure img {
    width:100%;
    height:100%;
    object-fit: contain;
}

.mypage .section-title {display:flex;width:100%;justify-content:space-between;}

.filter-buttons { display: flex; gap: 6px; }
.filter-btn {
    border-radius: 100px;height:fit-content;padding:3px 10px;
    border: 1px solid var(--text-tertiary); font-size: 14px; color:var(--text-tertiary);
}
.filter-btn.active { border-color: var(--primary-color); color: var(--primary-color); }

.weekly-progress {display: grid;gap:10px; grid-template-columns: repeat(7,1fr); text-align: center; background:#fff;padding:30px 20px;}
.day-progress { display: flex; flex-direction: column; align-items: center; gap: 0.625rem; }
.day-circle {
    width: 100%; aspect-ratio: 1/1; border-radius: 50%; display: flex;
    justify-content: center; align-items: center;
    font-weight: 500;
}

.day-progress.pending .day-circle { background-color: #eaeaea; color: var(--text-tertiary); }
.day-progress.pending .day-label { color: var(--text-tertiary);}

.day-progress.completed .day-circle {
    background:var(--primary-color);
    color:#fff
}
.day-progress.completed .day-label {
    color:var(--primary-color);
}


.reward-grid {
    display: grid; grid-template-columns: repeat(5, 1fr); gap: 15px;
}
.reward-icon { font-size: 2.5rem; text-align: center; }
.reward-icon.achieved { color: transparent; background-clip: text; -webkit-background-clip: text; background-image:linear-gradient(180deg, #3F92FF 0%, #00FF37 100%);; }
.reward-icon.locked { color: var(--disabled-color); }
.reward-caption { text-align: right; margin-top: 8px; font-size: 14px; color: var(--text-tertiary); }

.quiz-card {
    text-align: center;
    display:flex;
    flex-direction: column;
    gap:15px;
}


.quiz-card p { line-height: 1.5;word-break: keep-all;}
.quiz-card p strong {color:var(--primary-color);font-size:18px;}
.quiz-buttons { display: flex; justify-content: center; gap: 25px; }
.quiz-btn {
    width: 90px; height: 90px; border-radius: 10px; display: flex;
    justify-content: center; align-items: center;padding:10px;
}
.quiz-btn.o {background: linear-gradient(360deg, #3F92FF 0%, #3FE2FF 100%);}
.quiz-btn.x {background: linear-gradient(180deg, #FFBA59 0%, #FF7259 100%);}

.quiz-btn.quiz-answer {filter: brightness(0.7) grayscale(0.5);}
.quiz-comment {background:var(--primary-color-light);border-radius:10px;padding:10px;}
.quiz-comment span {font-weight:700;}
.quiz-comment p {font-size:14px;line-height:1.3;}

.menu-list {background:#fff;border-top:1px solid #eee;}
.menu-list a {
    display: flex; justify-content: space-between; align-items: center;
    padding: 20px; border-bottom: 1px solid #eee;
    text-decoration: none; color: var(--text-primary);
}
.menu-list .menu-title {font-size:18px;font-weight:700;}
.menu-list i {font-size:14px;color:#666;}


/* ============== mypage ============== */



/* ============== oxquiz ============== */




.quiz-title>div {
    border:1px solid var(--primary-color);
    box-shadow: 0 0 3px var(--primary-color);
    aspect-ratio:3/1;
    display: flex;
    gap:20px;
    justify-content: space-between;
    align-items: flex-end;
    padding-bottom:0
}

.quiz-title h2 {
    line-height:1.3;
    padding-bottom:20px;
    font-weight:500;
}

.quiz-title h2 strong {
    font-size:18px;
}

.quiz-title figure {
    height: 100%;
}

.quiz-title figure img {
    width:100%;
    height:100%;
    object-fit: cover;
}




.quiz-container {
    border-top :1px solid var(--border-color);
}

.quiz-item {
    border-top: 1px solid var(--border-color);
}

.quiz-list-container>div:last-child {
    border-bottom: 1px solid var(--border-color);
}

.quiz-box {
    display: flex;
    justify-content: space-between;
    gap:20px;
    align-items: center;
    padding: 20px ;
    cursor: pointer;
}

.quiz-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.quiz-title span {
    color: var(--text-color-primary);
}

.quiz-title i {color:var(--primary-color);font-size:18px;}

.quiz-title span.completed,.quiz-question-title span.pending {
    color: #fff;
    font-size:14px;
}

.quiz-question .chevron {
    color: var(--text-color-primary);
}

.quiz-text {
    display: none;
    padding: 20px;
    color: var(--text-color-secondary);
    line-height: 1.5;
    background-color: var(--background-color);
    border-top:1px solid var(--border-color)
}

.quiz-item .arrow i { 
    font-size: 12px; transition: transform 0.3s ease-out; 
}

.quiz-item.active .arrow i { 
    transform: rotate(180deg); }

.no-quiz {
    color:#999; 
    justify-content: center;
    background:#f9f9f9;
}








/* ============== oxquiz ============== */



/* ============== information ============== */


.info-title>div {
    border:1px solid var(--primary-color);
    box-shadow: 0 0 3px var(--primary-color);
    aspect-ratio:3/1;
    display: flex;
    gap:20px;
    justify-content: space-between;
    align-items: flex-end;
    padding-bottom:0
}

.info-title h2 {
    line-height:1.3;
    padding-bottom:20px;
    font-weight:500;
}

.info-title h2 strong {
    font-size:18px;
}

.info-title figure {
    height: 100%;
}

.info-title figure img {
    width:100%;
    height:100%;
    object-fit: cover;
}

.info-wrap {
    display:flex;
    gap:20px;
    flex-direction: column;
}

.info-wrap li {
    width:100%;
    display:flex;
    flex-direction: column;
    gap:20px;
    background:#f3f7fd;
    border:1px solid #ccc;
    box-shadow: unset;
}

.info-wrap li:nth-child(2n) {
    background:#fdfdfd;
}

.info-wrap .info-text {
    display:flex;
    gap:5px;
    flex-direction: column;
}

.info-wrap .info-text hr {
    width:100%;
    height:1px;
    background:#ccc;
    border:0;
}

.info-wrap span {
    line-height:1.3;
}

.info-wrap p {
    font-size:16px;
    font-weight:700;
}

/* ============== information ============== */



/* ============== video ============== */

.video-wrap {
    display:grid;
    gap:20px;
    grid-template-columns: repeat(1,1fr);
}

.video-wrap li {
    width:100%;
    display:flex;
    flex-direction: column;
    gap:20px;
}

.video-wrap .card {
    padding:20px;
}

.video-wrap .video-thum {
    background:#ddd;
    width:100%;
    aspect-ratio: 16 / 9;
    border-radius:10px;
    overflow: hidden;
}

.video-wrap iframe {
    width:100%;
    height:100%;
}

.video-wrap .video-text {
    display:flex;
    gap:5px;
    flex-direction: column;
}

.video-wrap h3 {
    font-size: 16px;
    line-height:1.3;
}

.video-wrap p {
    font-size:14px;
    color:#999;
}


/* ============== video ============== */



/* ============== message ============== */

.send ul {
    border:1px solid var(--primary-color);
    box-shadow: 0 0 3px var(--primary-color)
}
.send ul li {
    color:var(--primary-color);
    display:flex;
    align-items: center;
    justify-content: space-between;
}

.send span {opacity:0.8;font-weight:300;}



.message-container {
    border-top :1px solid var(--border-color);
}

.message-item {
    border-top: 1px solid var(--border-color);
}

.message-list-container>div:last-child {
    border-bottom: 1px solid var(--border-color);
}

.message-box {
    display: flex;
    justify-content: space-between;
    gap:20px;
    align-items: center;
    padding: 20px ;
    cursor: pointer;
}

.message-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.message-title span {
    color: var(--text-color-primary);
}

.message-title i {color:var(--primary-color);font-size:18px;}

.message-title span.completed,.message-question-title span.pending {
    color: #fff;
    font-size:14px;
}

.message-question .chevron {
    color: var(--text-color-primary);
}

.message-text {
    display: none;
    padding: 20px;
    color: var(--text-color-secondary);
    line-height: 1.5;
    background-color: var(--background-color);
    border-top:1px solid var(--border-color)
}

.message-item .arrow i { 
    font-size: 12px; transition: transform 0.3s ease-out; 
}

.message-item.active .arrow i { 
    transform: rotate(180deg); }

.no-message {
    color:#999; 
    justify-content: center;
    background:#f9f9f9;
}



/* ============== message ============== */


/* ============== send-message ============== */
.send-wrap {
    display: flex;
    flex-direction: column;
    gap: 15px; 
    background: #fff;
    border-radius: 10px; 
}

.send-wrap .form-control {
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 12px;
    font-size: 16px;
    background-color: #fff;
}

.send-wrap .form-control::placeholder {
    color: #999;
}

.send-wrap .recipient-group {
    display: flex;
    gap: 10px;
}

.send-wrap .recipient-group input {
    flex-grow: 1;
}

.send-wrap .btn {
    padding: 12px 15px;
    border: 1px solid var(--border-color, #ccc);
    background-color: #f8f8f8;
    border-radius: 5px;
    cursor: pointer;
    font-weight: 500;
    font-size: 16px;
    flex-shrink: 0;
    color:#666;
}

.send-wrap .message-group textarea {
    width: 100%;
    box-sizing: border-box;
    resize: unset;
}

.send-wrap .primary-btn {
    background-color: var(--primary-color);
    color: #fff;
    border-color: var(--primary-color);
    font-weight: 700;
}

.send-wrap .btn-block {
    width: 100%;
    padding: 15px;
    font-size: 18px;
}
/* ============== send-message ============== */


/* ============== setting ============== */


.profile ul {
    background:var(--primary-color);
    color:#fff;
}
.profile ul li {
    display:flex;
    align-items: center;
    justify-content: space-between;
}
.profile ul li i {font-size:14px;}

.profile h3 {font-size:20px;}
.profile span {opacity:0.8;font-weight:300;}

.noti-setting ul {padding-top:0;padding-bottom:0;}

.noti-setting li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding:20px 0;
    border-bottom:1px solid #e9e9e9;
}

.noti-setting li:last-child {
    border-bottom:0;
}

.noti-setting span, .noti-setting i {
    color:#999;
}

.toggle-switch {
    position: relative;
    display: inline-block;
    width: 40px;
    height: 20px;
}

.toggle-switch input[type="checkbox"] {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
}

.toggle-switch label {
    display: block;
    width: 100%;
    height: 100%;
    background-color: var(--disabled-color, #ddd);
    border-radius: 14px;
    cursor: pointer;
    transition: background-color 0.2s ease-in-out;
}

.toggle-switch label::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    background-color: var(--white-color, #fff);
    border-radius: 50%;
    transition: transform 0.2s ease-in-out;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.toggle-switch input[type="checkbox"]:checked + label {
    background-color: var(--primary-color);
}

.toggle-switch input[type="checkbox"]:checked + label::after {
    transform: translateX(20px);
}




.logout div {
    background:#bbb;
    color:#fff;
    text-align: center;
}



/* ============== setting ============== */








@media all and (min-width: 768px) and (max-width: 1023px) {
    /** Tablet  */

    .weekly-progress { 
        gap: 30px;
        grid-template-columns: repeat(7, 1fr);
        text-align: center;
        font-size:20px;
        background: #fff;
        padding: 30px 20px;
    }

    .reward-grid { 
        grid-template-columns: repeat(10, 1fr); 
    }

    .quiz-title>div { 
        aspect-ratio: 6 / 1; 
    }

    .info-title>div { 
        aspect-ratio: 6 / 1; 
    }

    
.video-wrap {
    display:grid;
    gap:20px;
    grid-template-columns: repeat(2,1fr);
}
    
.info-wrap {
    display:grid;
    gap:20px;
    grid-template-columns: repeat(2,1fr);
}

}





















