@charset "utf-8";
/* 총관리자 어드민 공통 */

.admin-breadcrumb {display: flex; align-items: center; gap: 8px; margin-bottom: 20px; font-size: 14px; font-weight: 600; color: #374151;}
.admin-breadcrumb a {color: #9CA3AF;}
.admin-breadcrumb a::after {content: ''; margin-left: 8px; display: inline-block; width: 6px; height: 10px; background-image: url(../img/breadcrumb-arrow.svg); background-repeat: no-repeat; background-position: center center;}


.admin-list-head {display: flex; align-items: center; justify-content: space-between;}
.admin-list-head p:nth-child(1) {color: #1A1D23;}
.admin-list-head span {margin-left: 10px; font-size: 15px; font-weight: 500; color: #9CA3AF;}
.admin-list-head p,
.admin-list-head strong {font-size: 15px; font-weight: 500; color: #6B7280;}
.admin-list-head strong.red {color: #DC2626;}
.admin-list-head strong.blue {color: #1A56DB;}


/* 총관리자 어드민 */
/* 관리자 대시보드 */
.admin-dashboard {display: flex; flex-direction: column; gap: 24px;}
.admin-dashboard-head {padding: 0;}
/* .admin-dashboard-title {padding-bottom: 20px;} */
.admin-dashboard-title h2 {margin-bottom: 3px; font-size: 21px; line-height: 30px; font-weight: 700; color: #111827;}
.admin-dashboard-title p {padding-bottom: 2px; font-size: 14px; color: #6B7280; word-break: keep-all;}
.admin-dashboard-title.has-btn {display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;}
.admin-filter-form {display: flex; align-items: center; gap: 8px; flex-wrap: wrap;}
.mypage-select,
.mypage-datepicker {position: relative; }
.mypage-datepicker .datepicker::-webkit-calendar-picker-indicator {width: 100%; height: 100%; position: absolute; top: 0; right: 0; background:transparent;}
.mypage-select > span,
.mypage-datepicker > span {position: absolute; top: 50%; left: 10px; transform: translateY(-50%); z-index: 2; font-size: 12px; color: #9CA3AF; pointer-events: none;}
.mypage-select .custom-select select,
.mypage-datepicker .datepicker {border-radius: 7px; height: unset; padding-block: 6px; padding-left: 45px; padding-right: 10px !important; border-color: #E5E7EB; background-color: #F9FAFB; font-size: 14px; font-weight: 400; color: #374151;}
.mypage-select .custom-select::after {display: none;}
.admin-filter-form .blue-btn {border-radius: 7px; padding: 8px 20px; font-size: 14px;}
.admin-summary-grid {display: flex; gap: 20px; flex-wrap: wrap;}
.admin-summary-grid .admin-summary-card {width: calc(25% - 60px / 4); margin-top: 0;}
.admin-summary-card {padding: 24px 14px;}
.admin-summary-card p {font-size: 15px; font-weight: 500; color: #6B7280;}
.admin-summary-card strong {display: block; line-height: 32px; margin-top: 6px; font-size: 21px; font-weight: 700;}
.admin-summary-card strong.blue {color: #1D4ED8;}
.admin-summary-card strong.green {color: #15803D;}
.admin-summary-card strong.red {color: #B91C1C;}
.admin-summary-card strong.orange {color: #92400E;}
.admin-summary-card span {font-size: 12px; font-weight: 400; color: #9CA3AF; display: block;}
.admin-progress-list {display: flex; flex-direction: column; gap: 10px;}
.admin-progress-item {display: flex; align-items: center; gap: 14px; padding-left: 22px;}
.admin-progress-item strong {width: 30px; flex-shrink: 0; font-size: 15px; text-align: right; font-weight: 400; color: #6B7280;}
.admin-progress-item p {width: 48px; flex-shrink: 0; text-align: left; font-size: 15px; font-weight: 600; color: #111827;}
.admin-progress-bar {overflow: hidden; position: relative; flex: 1; height: 22px; border-radius: 5px; background-color: #F3F4F6;}
.admin-progress-bar span {transition: box-shadow 0.2s; display: block; height: 100%; border-radius: 5px; padding-inline: 8px;}
.admin-progress-bar span i {transition: color 0.2s; font-size: 15px; line-height: 22px; font-weight: 700; color: #fff;}
.admin-progress-bar span.high {background-color: #1D4ED8;}
.admin-progress-bar span.medium {background-color: #2563EB;}
.admin-progress-bar span.low {background-color: #D97706;}
.admin-progress-bar span.danger {background-color: #B91C1C;}
.grade-summary-card {padding: 20px 0 0;}
.grade-summary-card .section-title {padding-inline: 20px;}
.attendance-badge {font-weight: 700; padding: 3px 9px;}
/* 관리자 리스트 페이지 공통 */
.admin-page {display: flex; flex-direction: column; gap: 18px;}
.admin-student-table-card th,
.admin-student-table-card td {text-align: center;}
.admin-student-table-card td .square-btn {margin-inline: auto;}

/* 학생/학부모 연동 */
.admin-connect-table td {font-weight: 500; color: #374151;}
.connect-modal {max-width: 420px;}
.connect-modal .connect-modal-info {padding: 12px 14px; border-radius: 8px; background-color: #F5F6FA; display: flex; flex-direction: column; row-gap: 6px;}
.connect-modal .connect-modal-info dl {display: flex;align-items: center; justify-content: space-between;}
.connect-modal .connect-modal-info dl dt {font-size: 14px; color: #9CA3AF;}
.connect-modal .connect-modal-info dl dd {font-size: 14px; font-weight: 700; color: #1A1D23;}
/* 과제관리 */
.admin-task-filter .search-input {max-width: unset !important;}
/* 결제 수납 관리 */
.admin-payment-summary {display: flex; gap: 16px;}
.payment-warning-card {flex: 1; padding: 14px 20px; border: 1px solid #FCA5A5; border-radius: 12px; background-color: #FFF8F8;}
.payment-warning-card p {font-size: 14px; font-weight: 500; color: #6B7280;}
.payment-warning-card strong {display: block; margin-top: 10px; font-size: 24px; font-weight: 700; color: #DC2626;}
.payment-warning-card strong span {font-size: 14px; font-weight: 500;}
.payment-warning-card em {display: block; margin-top: 10px; font-style: normal; font-size: 14px; font-weight: 400; color: #9CA3AF;}
.payment-warning-top {display: flex; align-items: center; justify-content: space-between; gap: 12px;}
.admin-payment-filter {align-items: flex-end; gap: 20px;}
.admin-payment-filter .line {width: 1px; height: 65px; background-color: #E5E7EB; margin-inline: 40px;}
.admin-payment-filter .btn-wrap {column-gap: 10px;}
.admin-payment-filter .input-wrap {width: auto;}
.admin-payment-filter .search-input {max-width: 300px; width: 100%;}
.payment-filter-radio .radio-item {min-height: 38px; padding: 8px 14px; border-radius: 8px;}
.payment-filter-radio .radio-item.checked {border-color: #93C5FD !important; background-color: #EEF3FF !important;}
.payment-filter-radio .radio-item.checked span {color: #1A56DB !important;}
.payment-filter-radio .radio-item:last-child.checked {border-color: #FCA5A5 !important; background-color: #FEE2E2 !important;}
.payment-filter-radio .radio-item:last-child.checked span {color: #991B1B !important;}
.admin-payment-table td p {margin-top: 3px;}
.payment-date-note {display: block; margin-top: 4px; font-style: normal; font-size: 13px; font-weight: 800;}
.admin-payment-page .admin-payment-table td:nth-child(2) {font-weight: 500;}
/* 결제 관리 모달 */
.payment-selected-student {display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 8px; background-color: #EEF3FF;}
.payment-selected-student .student-avatar {display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background-color: #1A56DB; font-size: 11px; font-weight: 700; color: #fff;}
.payment-selected-student strong {font-size: 14px; font-weight: 600; color: #1A56DB;}
.payment-selected-student span {margin-left: auto; font-size: 13px; font-weight: 400; color: #4B6BCD;}
.unit-input {position: relative;}
.unit-input input {padding-right: 40px !important; width: 100%;}
.unit-input span {position: absolute; top: 50%; right: 15px; transform: translateY(-50%); font-size: 14px; font-weight: 600; color: #9CA3AF;}
.payment-status-radio .radio-item {padding: 10px 18px;}
.payment-status-radio .radio-item.checked {border-color: #1D4ED8; background-color: #1D4ED8;}
.payment-status-radio .radio-item.checked span {color: #fff;}
.payment-status-guide {border: 1px solid transparent; display: flex; align-items: center; column-gap: 10px; padding: 10px; border-radius: 10px; font-size: 14px; font-weight: 500;}
.payment-status-guide p {font-size: 14px; font-weight: 500;}
.payment-status-guide.blue {border-color: #93C5FD; background-color: #EFF6FF;}
.payment-status-guide.blue p {color: #1E40AF;}
.payment-status-guide.yellow {border-color: #FDE047; background-color: #FEF9C3;}
.payment-status-guide.yellow p {color: #854D0E;}
.payment-edit-modal .input-row .input-wrap {width: calc(50% - 4.5px);}
.payment-edit-modal .admin-modal-info {padding: 20px;}
.payment-notice-modal .admin-alert-icon {background-color: #FEF3C7;}
.admin-modal-bottom.center {justify-content: center;}
/* 과제 등록/수정/삭제 모달 */
.task-form-modal {max-width: 500px;}
.task-form-modal textarea {height: 140px;}
.task-delete-modal {max-width: 400;}
.task-delete-modal .admin-alert-icon {background-color: #FEE2E2;}
/* 과제 상세 */
.task-detail-head {display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px;}
.task-detail-head h2 {margin-bottom: 16px; font-size: 20px; font-weight: 700; color: #111827;}
.task-detail-head ul {display: flex; align-items: center; gap: 50px; flex-wrap: wrap;}
.task-detail-head li {display: flex; align-items: center; gap: 10px; font-size: 15px;}
.task-detail-head li span {color: #9CA3AF; font-weight: 500;}
.task-detail-head li strong {font-weight: 500; color: #1A1D23;}
.task-description-box {padding: 10px; border: 1px solid #E2E4EA; border-radius: 8px; background-color: #F5F6FA; font-size: 15px; color: #4B5563;}
.task-status-summary {display: flex; align-items: center; gap: 14px; flex-wrap: wrap;}
.task-status-summary span {margin-left: 0; display: inline-flex; align-items: center; gap: 5px; padding: 8px 14px; border: 1px solid #E2E4EA; border-radius: 8px; background-color: #F5F6FA; font-size: 15px; font-weight: 700; color: #374151;}
.task-status-summary i {width: 8px; height: 8px; border-radius: 50%;}
.task-status-summary i.green {background-color: #2E7D32;}
.task-status-summary i.red {background-color: #D32F2F;}
.task-status-summary i.blue {background-color: #2563EB;}
.admin-task-submit-table tr.not-submit-row {background-color: #FFF8F8;}
.student-name-cell {display: flex; align-items: center; gap: 10px;}
.student-name-cell span {display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; font-size: 12px; font-weight: 700;}
.student-name-cell span.green {background-color: #E6F4EA; color: #2E7D32;}
.student-name-cell span.red {background-color: #FDECEA; color: #D32F2F;}
.student-name-cell strong {font-weight: 600; color: #1A1D23;}
.admin-task-submit-table td:nth-child(3) {display: inline-flex; align-items: center; column-gap: 8px;}
.submit-file-link {font-size: 14px; font-weight: 500; color: #2563EB; text-decoration: underline;}
/* 교재 관리 */
.admin-book-page .admin-table-card .admin-section-head {padding: 20px; margin-bottom: 0;}
.admin-book-filter {display: flex; align-items: center; gap: 8px;}
.admin-book-filter .custom-select select {height: 38px; min-width: 120px;}
.admin-book-table tr.stopped-row td:nth-child(2) strong,
.admin-book-table tr.stopped-row td:nth-child(4) strong,
.admin-book-table tr.stopped-row td:nth-child(5) strong {color: #6B7280 !important;}
.admin-book-table tr.stopped-row td:nth-child(2) p {color: #C4C9D4 !important;}
.admin-book-table tr.stopped-row td:nth-child(3) label,
.admin-book-table tr.stopped-row td:nth-child(5) label {background-color: #F3F4F6 !important; color: #6B7280 !important;}
.admin-book-table th:nth-child(1),
.admin-book-table td:nth-child(1) {width: 120px;}
.admin-book-table .book-thumb {overflow: hidden; width: 60px; height: 60px; border-radius: 6px; background-color: #F3F4F6;}
.admin-book-table .book-thumb img {display: block; width: 100%; height: 100%; object-fit: cover;}

/* 총관리자 알림 / 메시지 */
.admin-alarm-page .admin-detail-section {padding: 0;}
.admin-alarm-page .admin-section-head {padding: 14px 22px; margin-bottom: 0; border-bottom: 1px solid #F0F4F8;}
.admin-alarm-page .admin-section-head h3 {font-size: 16px; font-weight: 600; color: #0B1F45;}
.admin-alarm-page .admin-section-body {padding: 20px 22px;}
.admin-alarm-page .admin-message-type {overflow-x: auto; display: flex; align-items: center; column-gap: 16px; margin-bottom: 20px;}
.admin-alarm-page .admin-message-type button {white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; height: 36px; padding: 0 14px; border: 1px solid #E9E9E9; border-radius: 999px; background-color: #fff; font-size: 14px; font-weight: 500; color: #2F2F2F;}
.admin-alarm-page .admin-message-type button.on {border-color: #BFDBFE; background-color: #EBF2FF; color: #1A56DB;}
.admin-alarm-page .admin-message-grid {gap: 14px; align-items: flex-start; margin-bottom: 20px;}
.admin-alarm-page .admin-message-grid .custom-select {width: 100%;}
.admin-alarm-page .admin-target-wrap {width: 100%; display: flex; flex-direction: column; row-gap: 14px;}
.admin-alarm-page .admin-selected-targets {display: flex; align-items: center; gap: 6px; flex-wrap: wrap;}
.admin-alarm-page .admin-selected-targets button {display: inline-flex; align-items: center; gap: 5px; min-height: 30px; padding: 0 10px; border: 1px solid #BFDBFE; border-radius: 7px; background-color: #EBF2FF; font-size: 13px; font-weight: 500; color: #1A56DB;}
.admin-alarm-page .admin-selected-targets button span {font-size: 12px; font-weight: 500; color: #8AAEE8;}
.admin-alarm-page .admin-message-textarea textarea {min-height: 104px; padding: 16px; font-size: 15px; line-height: 1.7;}
.admin-alarm-page .message-byte-info {display: flex; align-items: center; justify-content: space-between; gap: 12px;}
.admin-alarm-page .message-byte-info p {padding: 6px 16px; border-radius: 9px; background-color: #F8FAFB; font-size: 15px; color: #9AA3B0;}
.admin-alarm-page .message-byte-info span {font-size: 13px; color: #9AA3B0;}
.admin-alarm-page .admin-option-row {display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 10px; border-bottom: 1px solid #F5F7FA;}
.admin-alarm-page .admin-option-row strong {font-size: 15px; font-weight: 500; color: #1A2340;}
.admin-alarm-page .admin-option-row p {margin-top: 6px; font-size: 15px; color: #9AA3B0;}
.admin-alarm-page .admin-switch {position: relative; flex-shrink: 0; width: 38px; height: 22px; cursor: pointer;}
.admin-alarm-page .admin-switch input {position: absolute; opacity: 0; pointer-events: none;}
.admin-alarm-page .admin-switch span {display: block; width: 100%; height: 100%; border-radius: 999px; background-color: #CBD5E1;}
.admin-alarm-page .admin-switch span::after {content: ''; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background-color: #fff; transition: left 0.2s;}
.admin-alarm-page .admin-switch input:checked + span {background-color: #0B1F45;}
.admin-alarm-page .admin-switch input:checked + span::after {left: 19px;}
.admin-alarm-page .admin-message-bottom {display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; column-gap: 16px; row-gap: 10px; margin-top: 20px; padding: 18px 22px; border-radius: 12px; background-color: #fff;}
.admin-alarm-page .admin-message-bottom p {font-size: 15px; color: #9AA3B0; display: inline-flex; align-items: center; column-gap: 10px;}
.admin-alarm-page .admin-message-bottom p strong {font-weight: 700; color: #0B1F45;}
.admin-alarm-page .admin-message-bottom .btn-wrap {margin-left: auto; gap: 8px; overflow-x: auto;}
.admin-alarm-page .admin-message-bottom .square-btn {height: 38px; min-width: unset;}



/* 총관리자 어드민 끝 */


.w100 {width: 100% !important;}
.input-wrap label .required {color: #DC2626 !important;}

.admin-detail-section-wrap {display: flex; flex-wrap: wrap; align-items: stretch; gap: 20px;}
.admin-detail-section-wrap .admin-detail-section {flex: 1;}
.admin-detail-section-wrap .admin-detail-section+.admin-detail-section {margin-top: 0;}

/* 테이블 */
.admin-table-wrap {overflow-x: auto;}
.admin-table {width: 100%; min-width: 1000px;}
.admin-table thead {background-color: #FAFAFA;}
.admin-table th {padding: 10px 14px; text-align: left; font-size: 14px; font-weight: 700; color: #9CA3AF; font-size: 15px; font-weight: 600;}
.admin-table tr.waiting-row {background-color: #FFFCF0 !important;}
.admin-table td {padding: 14px; border-bottom: 1px solid #F9FAFB; font-size: 15px; font-weight: 400; color: #374151;}
.admin-table td:nth-child(1) {color: #111827; font-weight: 700;}
.admin-table tr:last-child td {border-bottom: 0;}
.admin-table td.orange {color: #D97706; font-weight: 700;}
.admin-table td.red {color: #B91C1C; font-weight: 700;}
.admin-table td.zero {color: #9CA3AF;}
.admin-table td .btn-wrap {column-gap: 6px;}
.admin-table td .btn-wrap .square-btn {min-width: 56px;}
.admin-table .label {padding: 6px 9px; font-size: 15px; font-weight: 500;}
.admin-table .square-btn {border-radius: 7px; padding: 6px 11px;}
.admin-table-card {overflow: hidden; border: 1px solid #E5E7EB; border-radius: 14px; background-color: #fff;}
.admin-table-bottom {display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-top: 1px solid #E8EBF0; background-color: #FAFBFD;}
.admin-table-bottom .admin-total-count {font-size: 15px; font-weight: 400; color: #64748B;}
.admin-table-bottom .admin-pagination {display: flex; align-items: center; gap: 4px;}
.admin-table-bottom .admin-pagination a {transition: box-shadow 0.3s;}
.admin-table-bottom .admin-pagination a,
.admin-table-bottom .admin-pagination span {display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 10px; border: 1px solid #E8EBF0; border-radius: 7px; background-color: #fff; font-size: 15px; font-weight: 400; color: #374151;}
.admin-table-bottom .admin-pagination a.active {border-color: #0B1F45; background-color: #0B1F45; color: #fff;}
.admin-table-bottom.no-bg {background-color: transparent; border-top: 0; padding-inline: 0;}

.admin-detail-card:has(.admin-detail-tabs.absolute) {padding-top: 77px !important; position: relative;}
.admin-detail-card .admin-detail-section:not(:has(.admin-section-head)) {padding: 0 !important; border: 0 !important; border-radius: 0 !important;}
.admin-detail-tabs {width: 100%; display: flex; align-items: center;}
.admin-detail-tabs.absolute {position: absolute; top: 0; left: 0;}
.admin-detail-tabs .tab {display: inline-flex; align-items: center; position: relative; column-gap: 5px; height: 46px; padding: 0 22px; font-size: 15px; font-weight: 500; color: #6B7280;}
.admin-detail-tabs .tab.on {color: #2563EB; font-weight: 700;}
.admin-detail-tabs .tab.on::after {content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background-color: #2563EB;}

/* 학생 관리 */
.admin-student-detail-page .admin-detail-card:has(.admin-detail-tabs.absolute) .admin-detail-section:has(.admin-table) {padding: 20px 0; border: 1px solid #E5E7EB; border-radius: 14px;}
.admin-student-detail-page .admin-detail-card:has(.admin-detail-tabs.absolute) .admin-detail-section:has(.admin-table) .admin-section-head {margin-inline: 20px;}
.admin-student-detail-page .admin-detail-card:has(.admin-detail-tabs.absolute) .admin-detail-section:has(.admin-table):has(.admin-edit-form) {padding-bottom: 0;}
.admin-student-detail-page .admin-detail-card .admin-detail-section .admin-edit-form .custom-select {width: 100%;}
/* 학생 상세 */
.admin-detail-head {display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; padding: 24px; border: 1px solid #E5E7EB; border-radius: 14px; background-color: #fff;}
.admin-detail-profile {flex: 1;}
.admin-detail-profile-title {display: flex; align-items: center; gap: 8px; margin-bottom: 20px;}
.admin-detail-profile-title h2 {font-size: 22px; font-weight: 700; color: #1A1D23;}
.admin-detail-profile ul, .admin-detail-parent ul {display: flex; flex-direction: column; gap: 10px;}
.admin-detail-profile li, .admin-detail-parent li {display: flex; align-items: center; gap: 10px; font-size: 15px;}
.admin-detail-profile li span, .admin-detail-parent li span {flex-shrink: 0; color: #9CA3AF;}
.admin-detail-profile li strong, .admin-detail-parent li strong {font-weight: 500; color: #1A1D23;}
.admin-detail-parent {width: fit-content; min-width: 260px; padding-left: 24px; border-left: 1px solid #E2E4EA;}
.admin-detail-section {overflow: hidden; padding: 20px; border: 1px solid #E5E7EB; border-radius: 14px; background-color: #fff;}
.admin-detail-section+.admin-detail-section {margin-top: 16px;}
.admin-detail-section:has(.admin-table):has(.admin-section-head) {padding: 20px 0 ;}
.admin-detail-section:has(.admin-table):has(.admin-section-head) .admin-section-head {margin-inline: 20px;}
.admin-detail-section:has(.admin-table:last-child):has(.admin-section-head) {padding-bottom: 0;}
.admin-detail-section:has(.admin-table-bottom) {padding-bottom: 0;}
.admin-detail-section .admin-table-bottom {background-color: #fff; border-top: 0;}
.admin-section-head {display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px;}
.admin-section-head h3 {font-size: 16px; font-weight: 800; color: #111827; display: flex; align-items: center; column-gap: 6px;}
.admin-section-head p {margin-top: 8px; font-size: 14px; color: #6B7280;}
.admin-detail-section:has(.admin-table):not(:has(.admin-section-head)) .admin-table-wrap {border-radius: 10px; border: 1px solid #E2E4EA;}
.admin-detail-section:has(.admin-table):has(.admin-edit-form) {padding-bottom: 0;}
.admin-detail-section:has(.admin-table) .admin-edit-form {border: 0; border-radius: 0; border-top: 1px dashed #E5E7EB;}
.admin-edit-form {margin-top: 16px; padding: 16px; background-color: #FAFBFC; border-radius: 8px; border: 1px dashed #E5E7EB;}
.admin-edit-form.dashed {border: 1px dashed #CBD5E1;}
.admin-edit-form h4 {display: inline-flex; align-items: center; column-gap: 5px; margin-bottom: 14px; font-size: 15px; font-weight: 700; color: #1D4ED8;}
.admin-edit-form .input-grid .input-wrap {width: calc(100% / 3 - 24px / 3);}
.admin-edit-form .input-row:has(>.square-btn) .input-wrap {max-width: calc((100% - 68px - 12px) / 2 - 6px);}
.admin-comment-box textarea {height: 120px; padding: 14px; resize: none; line-height: 1.6;}
.admin-form-btns {gap: 8px; margin-top: 14px; justify-content: flex-end;}
.monthly-progress-table {}
.monthly-progress-head, .monthly-progress-row {display: flex; align-items: center; gap: 10px;}
.monthly-progress-head {margin-bottom: 4px;}
.monthly-progress-head > *, .monthly-progress-row > *{width: calc(100% / 3 - 20px / 3);}
.monthly-progress-head span {padding: 10px; background-color: #FAFAFA; border-radius: 7px; text-align: center; font-size: 15px; font-weight: 600; color: #9CA3AF;}
.monthly-progress-row + .monthly-progress-row {margin-top: 8px;}
.monthly-progress-row input {font-weight: 700; color: #374151;}
.monthly-progress-row.current-month input {background-color: #EFF6FF; border-color: #BFDBFE; color: #1D4ED8;}
.monthly-progress-row input.input-progress {position: relative; padding-right: 40px; background-image: url(../img/percent-ico.svg); background-repeat: no-repeat; background-position: right 14px center;} 
.monthly-progress-row.current-month input.input-progress {background-image: url(../img/percent-ico-blue.svg);}
.monthly-progress-row .btn-wrap {column-gap: 4px;}
.monthly-progress-row .btn-wrap .mini-btn {flex: 1;}
.admin-comment-bottom {display: flex; align-items: center; justify-content: space-between; margin-top: 12px;}
.admin-comment-bottom p {font-size: 13px; color: #9CA3AF;}
/* 학생 상세 - 국어 · 논술 로드맵 */
.admin-roadmap-section {padding: 20px !important;}
.admin-roadmap-section .roadmap-step-item {justify-content: flex-start;}
.admin-roadmap-section .roadmap-step-item .input-list {row-gap: 10px;}
.admin-roadmap-section .roadmap-step-item .input-list .custom-select {width: 100%;}
.admin-roadmap-section .roadmap-step-item label {display: flex; flex-direction: column; gap: 5px; font-size: 12px; font-weight: 700; color: #9CA3AF;}
.roadmap-step-item.current em {display: none;}
/* 학습현황관리 */
.admin-study-status-section {padding: 20px !important; border: 0 !important; border-radius: 0 !important; background-color: transparent !important;}
.admin-study-status-section .study-status-card {padding: 20px; border: 1px solid #E5E7EB; border-radius: 14px; background-color: #fff;}
.admin-study-status-section .study-status-card + .study-status-card {margin-top: 20px;}
.admin-study-status-section .study-status-head {display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px;}
.admin-study-status-section .study-status-head h3 {font-size: 16px; font-weight: 800; color: #111827;}
.admin-study-status-section .study-status-head span {font-size: 14px; font-weight: 500; color: #9CA3AF;}
.admin-study-status-section .study-course-list {display: flex; flex-direction: column; gap: 12px;}
.admin-study-status-section .study-course-item {display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px; border: 1px solid #E5E7EB; border-radius: 10px; background-color: #fff;}
.admin-study-status-section .study-course-info strong {display: block; margin-bottom: 8px; font-size: 15px; font-weight: 800; color: #111827;}
.admin-study-status-section .study-course-info .label {margin-bottom: 12px;}
.admin-study-status-section dl {display: flex; align-items: center; gap: 6px; margin-top: 6px;}
.admin-study-status-section dt {position: relative; padding-left: 16px; font-size: 14px; font-weight: 500; color: #9CA3AF;}
.admin-study-status-section dt::before {content: ''; position: absolute; top: 50%; left: 0; width: 12px; height: 12px; transform: translateY(-50%); background: url(../img/user-ico-gray.svg) no-repeat center / contain;}
.admin-study-status-section dd {font-size: 14px; font-weight: 700; color: #374151;}
.admin-study-status-section .study-progress {font-size: 15px; font-weight: 800; color: #2563EB;}
.admin-study-status-section .study-history-list {display: flex; flex-direction: column; gap: 10px;}
.admin-study-status-section .study-history-item {position: relative; display: grid; grid-template-columns: 1.2fr .8fr auto; align-items: center; gap: 20px; padding: 18px; border: 1px solid #E5E7EB; border-radius: 10px; background-color: #fff;}
.admin-study-status-section .study-history-info > strong {display: block; margin-bottom: 12px; font-size: 15px; font-weight: 800; color: #111827;}
.admin-study-status-section .study-history-info dl {display: block; margin-top: 5px;}
.admin-study-status-section .study-history-info dt {padding-left: 0; font-size: 13px;}
.admin-study-status-section .study-history-info dt::before {display: none;}
.admin-study-status-section .study-history-info dd {margin-top: 3px; font-size: 14px;}
.admin-study-status-section .study-history-teacher span {display: block; margin-bottom: 5px; font-size: 13px; font-weight: 500; color: #9CA3AF;}
.admin-study-status-section .study-history-teacher strong {font-size: 14px; font-weight: 700; color: #374151;}
.admin-study-status-section .study-stop-reason {grid-column: 1 / -1; padding: 10px 12px; border-radius: 7px; background-color: #FFF1F1; font-size: 14px; font-weight: 500; color: #DC2626;}
/* 출결 */
.admin-attendance-table th,
.admin-attendance-table td {text-align: left;}
.admin-attendance-table td:nth-child(1) {font-size: 16px; font-weight: 700; color: #374151;}
.admin-attendance-table td:nth-child(2) strong {display: block; font-size: 15px; font-weight: 800; color: #111827;}
/* 과제 */
.admin-task-table th,
.admin-task-table td {text-align: left;}
.admin-task-table tr.is-expired {background-color: #FFF7F7;}
.admin-task-table td:nth-child(1) {font-weight: 500; color: #1A1D23;}
.admin-task-table td:nth-child(2) {font-weight: 800; color: #111827;}
.admin-task-table td:last-child .square-btn {margin-left: 0;}
/* 결제 */
.admin-payment-table th,
.admin-payment-table td {text-align: left;}
.admin-payment-table td:nth-child(1) strong {display: block; font-size: 15px; font-weight: 800; color: #111827;}
.admin-payment-table td:nth-child(2) {font-weight: 800; color: #111827;}
.admin-payment-table .mini-btn {font-size: 14px;}
/* 녹화 모달 */
.record-modal.success .record-uploade-done {display: flex;}
.record-modal .record-uploade-done {margin-bottom: 22px; padding: 16px 18px; border-radius: 10px; background-color: #E6F4EA; border: 1px solid #A8D5B0; display: none; align-items: center; column-gap: 12px;}
.record-modal .record-uploade-done .ico-wrap {width: 36px; height: 36px; border-radius: 8px; background-color: #2E7D32; display: flex; align-items: center; justify-content: center;}
.record-modal .record-uploade-done .txt-wrap strong {font-size: 15px; font-weight: 700; color: #2E7D32;}
.record-modal .record-uploade-done .txt-wrap p {margin-top: 4px; font-size: 14px; font-weight: 400; color: #4E8A5A;}
.record-modal.success .input-list,
.record-modal:not(.success) .uploaded-date {display: none;}
.record-modal.success .uploaded-date {display: flex; flex-direction: column; row-gap: 16px;}
.record-modal.success .uploaded-date .link-wrap span {font-size: 12px; font-weight: 600; color: #9CA3AF;}
.record-modal.success .uploaded-date .link-wrap .link-box {margin-top: 8px; padding: 11px 14px; border-radius: 8px; background-color: #F5F6FA; border: 1px solid #E2E4EA; display: flex; align-items: center; column-gap: 8px;}
.record-modal.success .uploaded-date .link-wrap .link-box p {font-size: 14px; font-weight: 500; color: #1A56DB; flex: 1; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; max-width: calc(100% - 68px - 15px - 16px);} 
.record-modal.success .uploaded-date .memo-wrap {display: flex; align-items: flex-start; column-gap: 5px;}
.record-modal.success .uploaded-date .memo-wrap span,
.record-modal.success .uploaded-date .memo-wrap p {font-size: 14px; font-weight: 400; color: #6B7280;}
.record-modal.success .uploaded-date .memo-wrap span {flex-shrink: 0;}

/* 첨삭 모달 */
.feedback-modal {max-width: 620px; padding: 0 !important;}
.feedback-modal .admin-modal-head {padding: 24px 28px; margin-bottom: 0; border-bottom: 1px solid #F3F4F6;}
.feedback-modal-body,
.feedback-modal .admin-modal-bottom {padding-inline: 28px;}
.feedback-modal .admin-modal-bottom {padding-block: 16px 24px;}
.feedback-modal-summary {flex-wrap: wrap; display: flex; column-gap: 12px; row-gap: 8px; margin-inline: -28px; margin-bottom: 20px; padding: 18px 28px; background-color: #F8F9FB; border-bottom: 1px solid #F3F4F6;}
.feedback-modal-summary dl {width: calc(50% - 6px);}
.feedback-modal-summary dl.wide {width: 100%;}
.feedback-modal-summary dt {font-size: 15px; font-weight: 600; color: #9CA3AF;}
.feedback-modal-summary dd {margin-top: 5px; font-size: 15px; font-weight: 600; color: #1A1D23;}
.feedback-modal-summary .label {font-weight: 600;}
.feedback-box {padding: 16px; border: 1px solid #E2E4EA; border-radius: 8px; background-color: #F5F6FA; font-size: 15px; color: #374151;}
.feedback-score-wrap {display: flex; align-items: flex-end; gap: 10px;}
.feedback-score-wrap input[type="number"]{height: 46px; width: 80px;}
.feedback-score-wrap span {font-size: 15px; font-weight: 500; color: #9CA3AF;}
/* 결제 모달 */
.payment-register-modal,
.payment-edit-modal {max-width: 520px;}
.payment-register-modal .input-row .input-wrap {width: calc(50% - 4.5PX);}
.payment-total-box {display: flex; align-items: center; justify-content: space-between; margin-top: 14px; padding: 10px 14px; border-radius: 8px; background-color: #F5F6FA;}
.payment-total-box span {font-size: 14px; color: #6B7280;}
.payment-total-box strong {font-size: 16px; font-weight: 700; color: #1A56DB;}
.payment-edit-modal .admin-modal-info dd {font-weight: 700;}
.payment-edit-modal .admin-modal-info dd.red {color: #DC2626;}

/* 검색필터 */
.admin-filter-box {flex-wrap: wrap; display: flex; align-items: center; gap: 10px; padding: 14px 16px; border: 1px solid #E8EBF0; border-radius: 10px; background-color: #fff;}
.admin-filter-box .square-btn {padding: 10px; height: 38px; min-width: 80px; border-radius: 8px; font-size: 13px; font-weight: 500;}
.admin-filter-box .admin-add-btn {margin-left: auto;}
.admin-filter-box input[type="url"],
.admin-filter-box input[type="tel"],
.admin-filter-box input[type="file"],
.admin-filter-box input[type="text"],
.admin-filter-box input[type="password"],
.admin-filter-box input[type="email"],
.admin-filter-box input[type="number"],
.admin-filter-box .custom-select select {background-color: #F9FAFB;}

/* 학부모 관리 */
.admin-parent-table .child-label-list {display: flex; flex-wrap: wrap; gap: 6px;}
.admin-parent-table .child-label-list .label {border: 1px solid #E5E7EB; background-color: #F3F4F6; color: #4B5563; font-size: 15px; font-weight: 500;}

/* 학부모 상세 */
.admin-parent-detail-page .admin-detail-head {column-gap: 20px; align-items: flex-start;}
.admin-parent-detail-page .admin-detail-head .parent-avatar {width: 52px; height: 52px; border-radius: 50%; background-color: #EEF3FF; font-size: 20px; font-weight: 700; color: #2563EB; display: inline-flex; justify-content: center; align-items: center;}
.admin-parent-detail-page .admin-detail-head .parent-child-tags {margin-top: 15px;}
.admin-parent-detail-page .admin-detail-head .parent-child-tags span {font-size: 15px; font-weight: 500; color: #9CA3AF;}
.admin-parent-detail-page .admin-detail-head .parent-child-tags .child-list {margin-top: 8px; display: flex; align-items: center; column-gap: 7px; row-gap: 4px; flex-wrap: wrap;}
.admin-parent-detail-page .admin-detail-head .parent-child-tags .child-list .label {background-color: #EEF3FF; color: #1E40AF; font-weight: 700;}
.admin-parent-detail-page .admin-section-head {padding-block: 4px; border-bottom: 1px solid #F3F4F6;}
.admin-parent-detail-page textarea {background-color: #FAFBFC;}
.admin-parent-child-table {min-width: 700px;}

/* 수업 출결 관리 */
.attendance-summary-list {display: flex; gap: 20px; flex-wrap: wrap;}
.attendance-summary-card {width: 390px; padding: 18px 20px; border: 1px solid #E5E7EB; border-radius: 12px; background-color: #fff;}
.attendance-summary-card p {font-size: 14px; font-weight: 700; color: #9CA3AF;}
.attendance-summary-card strong {display: block; margin-top: 4px; font-size: 24px; font-weight: 800;}
.attendance-summary-card strong.green {color: #10B981;}
.attendance-summary-card strong.red {color: #EF4444;}
.attendance-summary-card span {display: block; margin-top: 2px; font-size: 14px; color: #9CA3AF;}
.summary-progress {overflow: hidden; height: 5px; margin-top: 10px; border-radius: 999px; background-color: #F3F4F6;}
.summary-progress i {display: block; height: 100%; border-radius: 999px;}
.summary-progress.green i {background-color: #10B981;}
.summary-progress.red i {background-color: #EF4444;}
.admin-class-table tr.absent-row {background-color: #FFF8F8;}
.admin-class-table td:nth-child(1) strong {font-size: 15px; font-weight: 500; color: #111827;}
.admin-class-table td:nth-child(1) p {margin-top: 2px; font-size: 11px; font-weight: 400; color: #9CA3AF;}
.admin-class-table td:nth-child(4) {text-align: right; font-weight: 500;}
.attendance-radio-group .radio-item {border: 1px solid #E5E7EB; background-color: #F3F4F6; padding: 6px 14px; min-height: 30px;}
.attendance-radio-group .radio-item span {color: #9CA3AF; font-size: 15px; font-weight: 500; column-gap: 2px;}
.attendance-radio-group .radio-item.checked.attendance-present {border-color: #A7F3D0; background-color: #ECFDF5;}
.attendance-radio-group .radio-item.checked.attendance-present span {color: #10B981;}
.attendance-radio-group .radio-item.checked.attendance-present svg path {stroke: #10B981;}
.attendance-radio-group .radio-item.checked.attendance-absent {border-color: #FCA5A5; background-color: #FEF2F2;}
.attendance-radio-group .radio-item.checked.attendance-absent span {color: #EF4444;}
.attendance-radio-group .radio-item.checked.attendance-absent svg path {stroke: #EF4444;}

/* 총관리자 강사 업무일지 */
.admin-teacher-record-page .admin-dashboard-title.has-btn {align-items: flex-start;}
.admin-teacher-record-page .admin-teacher-filter {width: 124px; flex-shrink: 0;}
.admin-teacher-record-page .admin-teacher-filter select {height: 36px; padding: 0 32px 0 13px; border-radius: 8px; font-size: 13px; font-weight: 600; color: #1A2540;}
.admin-teacher-record-page .admin-teacher-record-layout {display: grid; grid-template-columns: 520px 1fr; gap: 24px; align-items: flex-start;}
/* .admin-teacher-record-page .admin-teacher-record-calendar-card {position: sticky; top: 20px; padding: 0; overflow: hidden;}
.admin-teacher-record-page .admin-teacher-record-calendar-card .attendance-card-head {padding: 26px 28px 22px;}
.admin-teacher-record-page .admin-teacher-record-calendar-card .attendance-calendar {padding-bottom: 28px;}
.admin-teacher-record-page .calendar-day-list button i {background-color: #3A70D4;} */
.admin-teacher-record-page .admin-teacher-record-calendar-card .attendance-card-head {border-bottom: 1px solid #EDF1FA;}
.admin-teacher-record-page .admin-teacher-record-list {display: flex; flex-direction: column; gap: 12px;}
.admin-teacher-record-page .admin-teacher-record-item {display: flex; gap: 18px; padding: 16px 20px; border-radius: 14px;}
.admin-teacher-record-page .record-date-box {width: 76px; flex-shrink: 0; position: relative; padding-right: 16px; border-right: 1px solid #F0F4F8;}
.admin-teacher-record-page .record-date-box strong {display: block; font-size: 13px; font-weight: 500; line-height: 1.4; color: #9AA3B0; text-align: center;}
.admin-teacher-record-page .record-date-box span {display: block; margin-top: 10px; font-size: 12px; font-weight: 400; color: #B8C0CC; text-align: center;}
.admin-teacher-record-page .record-content-box {min-width: 0;}
.admin-teacher-record-page .record-teacher-head {display: flex; align-items: center; gap: 8px; margin-bottom: 20px;}
.admin-teacher-record-page .record-avatar {display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; font-size: 11px; font-weight: 700;}
.admin-teacher-record-page .record-avatar.blue {background-color: #EBF2FF; color: #2563EB;}
.admin-teacher-record-page .record-avatar.green {background-color:#EAFAF1; color: #1E8449;}
.admin-teacher-record-page .record-avatar.purple {background-color: #F3EEFF; color: #6929C4;}
.admin-teacher-record-page .record-avatar.orange {background-color: #FEF5E7; color: #D35400;}
.admin-teacher-record-page .record-teacher-head strong {font-size: 15px; font-weight: 600; color: #0B1F45;}
.admin-teacher-record-page .record-teacher-head em {font-style: normal; font-size: 25px; line-height: 20px; color: #C8D2E0;}
.admin-teacher-record-page .record-teacher-head p {font-size: 14px; font-weight: 400; color: #6B7A90;}
.admin-teacher-record-page .record-detail-box {padding: 10px; border-radius: 10px; background-color: #F8F9FA;}
.admin-teacher-record-page .record-detail-box + .record-detail-box {margin-top: 20px;}
.admin-teacher-record-page .record-class-badge {display: inline-flex; align-items: center; justify-content: center; min-height: 25px; padding: 0 10px; border: 1px solid #8FC3FF; border-radius: 999px; background-color: #fff; font-size: 14px; font-weight: 400; color: #3A5796;}
.admin-teacher-record-page .record-text-group {margin-top: 10px;}
.admin-teacher-record-page .record-text-group + .record-text-group {margin-top: 20px;}
.admin-teacher-record-page .record-text-group strong {display: block; margin-bottom: 6px; font-size: 15px; font-weight: 500; color: #374151;}
.admin-teacher-record-page .record-text-group p {font-size: 14px; line-height: 1.7; color: #5A6680; word-break: keep-all;}
.admin-teacher-record-page .record-text-group p.empty {color: #AEAEAE;}

/* 관리자 - 교재 소개 관리 */
.admin-monthly-book-page .admin-dashboard-title {margin-bottom: 0;}
.monthly-book-notice {padding: 12px 20px; border: 1px solid #C5D8FC; border-radius: 8px; background-color: #EEF3FE; display: flex; align-items: center; column-gap: 10px;}
.monthly-book-notice p {font-size: 15px; font-weight: 500; color: #2F2F2F; word-break: keep-all;}
.monthly-book-notice b,
.monthly-book-notice button {font-size: 15px; font-weight: 500; color: #2563EB;}
.monthly-book-filter-wrap {display: flex; align-items: center; justify-content: space-between; gap: 16px;}
.monthly-book-grade-tabs {display: flex; align-items: center; gap: 10px; flex-wrap: wrap;}
.monthly-book-grade-tabs a {display: inline-flex; align-items: center; justify-content: center; min-height: 37px; padding: 0 14px; border: 1px solid #E9E9E9; border-radius: 999px; background-color: #fff; font-size: 14px; font-weight: 500; color: #2F2F2F; transition: box-shadow 0.2s, border-color 0.2s, background-color 0.2s, color 0.2s;}
.monthly-book-grade-tabs a.on {border-color: #2563EB; background-color: #2563EB; color: #fff;}

/* 이달의 교재 등록/수정 */
.admin-monthly-book-form-page .admin-dashboard-title {margin-bottom: 0;}
.monthly-book-form {display: flex; flex-direction: column; gap: 20px;}
.monthly-book-form-card {overflow: hidden; padding: 0; border-radius: 12px;}
.monthly-book-form-head {display: flex; align-items: center; gap: 10px; padding: 15px 22px; border-bottom: 1px solid #F0F1F3;}
.monthly-book-form-head > span {display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background-color: #2563EB; font-size: 11px; font-weight: 700; color: #fff; flex-shrink: 0;}
.monthly-book-form-head h3 {display: flex; align-items: center; gap: 2px; font-size: 15px; font-weight: 700; color: #1A1A2E;}
.monthly-book-form-head h3 b {font-size: 13px; font-weight: 700; color: #EF4444;}
.monthly-book-form-head p {margin-top: 2px; font-size: 15px; font-weight: 400; color: #94A3B8;}
.monthly-book-form-head em {margin-left: auto; font-style: normal; font-size: 13px; font-weight: 400; color: #9CA3AF;}
.monthly-book-form-body {padding: 20px 22px;}
.monthly-book-search-row {display: flex; align-items: center; gap: 10px; margin-bottom: 18px;}
.monthly-book-search-row .custom-select {flex: 1;}
.monthly-book-search-row .custom-select select {height: 42px; border-color: #D8DEE8; border-radius: 8px; background-color: #fff; font-size: 15px; font-weight: 500; color: #2F2F2F;}
.monthly-book-search-row .square-btn {height: 42px; gap: 6px; padding-inline: 18px; border-radius: 8px; font-size: 15px; font-weight: 500; color: #111827;}
.selected-monthly-book {display: flex; align-items: center; gap: 50px; padding: 20px; border: 1px dashed #E2E8F0; border-radius: 9px; background-color: #fff;}
.selected-monthly-book.empty {min-height: 120px; font-size: 15px; color: #94A3B8; justify-content: center;}
.selected-book-thumb {overflow: hidden; width: 160px; height: auto; aspect-ratio: 160 / 182; flex-shrink: 0; background-color: #F9FBFE;}
.selected-book-thumb img {display: block; width: 100%; height: 100%; object-fit: contain;}
.selected-book-info {min-width: 0; flex: 1;}
.selected-book-title {display: flex; align-items: center; gap: 10px; margin-bottom: 10px;}
.selected-book-title h4 {font-size: 16px; font-weight: 600; color: #111827;}
.selected-book-bottom {display: flex; align-items: center; gap: 20px;}
.selected-book-bottom strong {font-size: 20px; font-weight: 700; color: #111827;}
.selected-book-bottom span {display: inline-flex; align-items: center; gap: 4px; font-size: 16px; font-weight: 500; color: #00882D;}
.monthly-book-form-body label {display: flex;}
.monthly-book-help {margin-left: 20px; font-size: 15px; font-weight: 400; color: #6B7280;}
.monthly-grade-check-list {display: flex; flex-wrap: wrap; gap: 10px;}
.monthly-grade-check-list label {cursor: pointer;}
.monthly-grade-check-list input {position: absolute; opacity: 0; pointer-events: none;}
.monthly-grade-check-list span {display: inline-flex; align-items: center; justify-content: center; min-height: 37px; padding: 0 14px; border: 1px solid #E9E9E9; border-radius: 999px; background-color: #fff; font-size: 14px; font-weight: 500; color: #2F2F2F; transition: border-color 0.2s, background-color 0.2s, color 0.2s;}
.monthly-grade-check-list label.checked span,
.monthly-grade-check-list input:checked + span {border-color: #2563EB; background-color: #2563EB; color: #fff;}
.admin-monthly-book-form-page textarea {min-height: 104px; padding: 14px 16px; border-color: #D8DEE8; border-radius: 8px; line-height: 1.6; font-size: 15px; font-weight: 400; resize: none;}
.admin-monthly-book-form-page .input-row {display: flex; gap: 20px;}
.admin-monthly-book-form-page .input-row .input-wrap {width: calc(50% - 10px);}
.admin-monthly-book-form-page input[type="date"] {height: 42px; border-color: #D8DEE8; border-radius: 8px; font-size: 15px; font-weight: 400; color: #6B7280;}
.monthly-book-switch-row {display: flex; align-items: center; gap: 20px; margin-top: 20px;}
.monthly-book-switch-row strong {font-size: 15px; font-weight: 400; color: #111827;}
.monthly-book-form-bottom {display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 16px 20px; border-top: 1px solid #F0F2F5; background-color: #fff;}
.monthly-book-form-bottom .square-btn {min-width: 76px; height: 40px; border-radius: 8px; font-size: 15px; font-weight: 500;}

/* hover 효과 */
@media (hover: hover) {
    .admin-progress-bar span:hover {box-shadow: inset 0 2px 3px rgba(255, 255, 255, 0.5),  inset 0 -4px 8px rgba(0, 0, 0, 0.08),  0 8px 20px rgba(0, 0, 0, 0.08);}
    .admin-progress-bar span:hover i {color: #ffffff80;}
}


/* 반응형 */
@media (max-width: 1440px) {
    /* 총관리자 강사 업무일지 */
    .admin-teacher-record-page .admin-teacher-record-item {flex-direction: column; }
    .admin-teacher-record-page .record-date-box {display: flex; align-items: center; column-gap: 10px; width: 100%; padding-right: 0; padding-bottom: 16px; border-right: 0; border-bottom: 1px solid #F0F4F8;}
    .admin-teacher-record-page .record-date-box strong,
    .admin-teacher-record-page .record-date-box span {text-align: left;}
    .admin-teacher-record-page .record-date-box span {margin-top: 0;}
}

@media screen and (max-width: 1280px) {
    .admin-detail-section-wrap {flex-direction: column;}
    .attendance-summary-card {width: calc(50% - 10px);}
    .admin-payment-filter .line {margin-inline: 0;}

    /* 총관리자 강사 업무일지 */
    .admin-teacher-record-page .admin-teacher-record-layout {display: flex; flex-direction: column;}
    .admin-teacher-record-page .admin-teacher-record-calendar-card {width: 100%; max-width: 560px;}
    .admin-teacher-record-page .admin-teacher-record-item {flex-direction: row; }
    .admin-teacher-record-page .record-date-box {display: flex; flex-direction: column; row-gap: 8px; width: 76px; padding-right: 16px; padding-bottom: 0; border-right: 1px solid #F0F4F8; border-bottom: 0;}
}

@media screen and (max-width: 1024px) {
    .admin-modal {padding: 24px;}
    .feedback-modal .admin-modal-head {padding: 20px 24px;}
    .feedback-modal-summary {margin-inline: -24px;}
    .feedback-modal-body, .feedback-modal .admin-modal-bottom {padding-inline: 24px;}
    .admin-payment-filter {gap: 10px;}
    .admin-payment-filter .line {display: none;}
    .admin-payment-filter .btn-wrap {margin-left: auto;}

    /* 총관리자 강사 업무일지 */
    .admin-teacher-record-page .admin-teacher-record-layout {grid-template-columns: 1fr;}
    .admin-teacher-record-page .admin-teacher-record-calendar-card {position: static;}
    
    /* 반응형 추가 260622 */
    .task-detail-head ul {gap: 16px;}
}

@media screen and (max-width: 768px) {
    /* 반응형 시 테이블을 카드형식으로 변경 */
    .admin-table-wrap {overflow-x: hidden;}
    .admin-table-card:not(.monthly-book-card) {border-radius: 0; border: 0; padding: 0; background-color: transparent;}
    .admin-table {display: block; min-width: unset;}
    .admin-table thead {display: none;}
    .admin-table tbody {display: flex; flex-direction: column; row-gap: 20px;}
    .admin-table tbody tr {display: flex; flex-direction: column; padding: 16px 20px; border-radius: 10px; background-color: #fff; border: 1px solid #E5E7EB;}
    .admin-table td {border-bottom: 0; padding: 0;}
    .admin-table td + td {padding-top: 10px; margin-top: 10px; border-top: 1px solid #EFEFEF;}
    .admin-table td::before {content: attr(data-label); display: block; flex-shrink: 0; font-size: 15px; font-weight: 500; color: #9AAABF; text-align: left; margin-bottom: 6px;}
    .admin-table-bottom {border-top: 0; background-color: transparent;}
    .dashboard-card:has(>.admin-table-wrap), 
    .admin-detail-section:has(.admin-table):has(.admin-section-head) {border-radius: 0; border: 0; padding: 0; background-color: transparent;}
    .admin-detail-section:has(.admin-table) .admin-section-head,
    .admin-detail-section:has(.admin-table) {padding: 0; border: 0; border-radius: 0;}
    .admin-detail-section:has(.admin-table):has(.admin-section-head) .admin-section-head {padding-inline: 20px;}
    .admin-detail-section+.admin-detail-section {padding-top: 16px; border-top: 1px solid #E5E7EB;}
    .admin-detail-section:has(.admin-table):has(.admin-section-head) .admin-section-head {margin-inline: 0;}
    .admin-detail-section:has(.admin-table):not(:has(.admin-section-head)) .admin-table-wrap {border: 0;}
    .admin-student-table-card th, .admin-student-table-card td {text-align: left;}
    .admin-student-table-card td .square-btn {margin-inline: unset;}
    .admin-detail-section:has(.admin-table) .admin-edit-form {border-radius: 0 0 8px 8px;}
    .admin-connect-page .admin-detail-section:has(.admin-table-wrap + .admin-table),
    .admin-detail-section:has(.admin-detail-tabs + .admin-table-wrap) {border: 1px solid #E5E7EB; border-radius: 14px; padding: 20px; background-color: #fff;}
    .admin-detail-tabs + .admin-table-wrap {margin-top: 20px;}
    .admin-detail-section:has(.admin-table:last-child):has(.admin-section-head) {padding-bottom: 20px;}
    .admin-detail-section:has(.admin-table:last-child):has(.admin-section-head) .admin-section-head {padding-inline: 0;}
    .admin-detail-section:has(.admin-table:last-child):has(.admin-section-head) .admin-detail-tabs {margin-inline: -20px;}
    .admin-student-detail-page .admin-detail-card:has(.admin-detail-tabs.absolute) .admin-detail-section:has(.admin-table) {border: 0;}
    /* 반응형 시 테이블을 카드형식으로 변경 끝 */

    .admin-detail-head {align-items: flex-start; flex-direction: column; row-gap: 24px;}
    .admin-modal {padding: 20px;}
    .feedback-modal .admin-modal-head {padding: 16px 20px;}
    .feedback-modal-summary {margin-inline: -20px;}
    .feedback-modal-body, .feedback-modal .admin-modal-bottom {padding-inline: 20px;}
    .admin-detail-card:has(.admin-detail-tabs.absolute) {padding-top: calc(46px + 16px) !important;}
    .admin-edit-form .input-grid .input-wrap {width: calc(50% - 6px);}
    .admin-detail-parent {width: 100%; padding-left: 0; padding-top: 24px; border-left: 0; border-top: 1px solid #E2E4EA;}
    .admin-table-bottom .admin-pagination a, .admin-table-bottom .admin-pagination span {min-width: 34px; height: 34px; font-size: 14px; padding: 0 5px; text-align: center;}
    .admin-detail-tabs .tab {padding: 0 16px;}

    .grade-summary-card .section-title {padding-inline: 0;}
    .admin-summary-grid .admin-summary-card {width: calc(50% - 10px);}
    .admin-payment-summary {flex-direction: column;}
    .admin-payment-filter .input-wrap:has(.search-input) {width: 100%;}
    .admin-payment-filter .search-input {max-width: unset;}
    .admin-payment-filter .input-wrap:has(.payment-filter-radio),
    .admin-payment-filter .btn-wrap {width: fit-content;}

    /* 탭 스크롤 */
    .admin-detail-tabs {overflow-x: auto; overflow-y: hidden; white-space: nowrap; scrollbar-width: none; -ms-overflow-style: none;}
    .admin-detail-tabs::-webkit-scrollbar {display: none;}
    .admin-detail-tabs .tab {flex: 0 0 auto; font-size: 14px;}

    /* 관리자 - 교재 소개 관리 */
    .monthly-book-filter-wrap {align-items: stretch; flex-direction: column;}
    .monthly-book-grade-tabs {overflow-x: auto; flex-wrap: nowrap; padding-bottom: 2px; scrollbar-width: none; -ms-overflow-style: none;}
    .monthly-book-grade-tabs::-webkit-scrollbar {display: none;}
    .monthly-book-grade-tabs a {flex: 0 0 auto;}
    .monthly-book-filter-wrap .square-btn {width: 100%;}

    /* 이달의 교재 등록/수정 */
    .monthly-book-form-head {align-items: flex-start; padding: 16px 20px;}
    .monthly-book-form-head em {display: none;}
    .monthly-book-form-body {padding: 18px 20px;}
    .monthly-book-search-row {flex-direction: column;}
    .monthly-book-search-row .custom-select,
    .monthly-book-search-row .square-btn {width: 100%;}
    .admin-monthly-book-form-page .input-row {flex-direction: column; gap: 14px;}
    .admin-monthly-book-form-page .input-row .input-wrap {width: 100%;}
    .selected-monthly-book {gap: 20px;}
    
    /* 총관리자 강사 업무일지 */
    .admin-teacher-record-page .admin-teacher-record-item {flex-direction: column;}
    .admin-teacher-record-page .record-date-box {align-items: center; flex-direction: row; width: 100%; padding-right: 0; padding-bottom: 16px; border-right: 0; border-bottom: 1px solid #F0F4F8;}

    /* 반응형 추가 260622 */
    .admin-alarm-page .admin-message-type {column-gap: 12px;}
    .admin-list-head {flex-direction: column; align-items: flex-start; row-gap: 16px;}
    .task-status-summary{flex-wrap: unset; overflow-x: auto;}
    .task-status-summary span {flex-shrink: 0;}
    .admin-task-submit-table td:nth-child(3) {flex-direction: column; align-items: flex-start;}
    .admin-task-submit-table td:nth-child(3) .submit-file-link {margin-bottom: 8px;}
    .admin-study-status-section .study-course-item {flex-direction: column;}
    .admin-study-status-section .study-history-item {grid-template-columns: 1fr;}
}

@media screen and (max-width: 600px) {
    .admin-edit-form .input-row {flex-wrap: wrap;}
    .admin-edit-form .input-grid .input-wrap {width: 100%;}
    .admin-edit-form .input-row:has(>.square-btn) .input-wrap {max-width: unset;}
    .admin-edit-form .input-row >.square-btn {margin-left: auto;}
    .admin-class-filter .square-btn {min-width: unset;}
    .admin-class-filter .square-btn.blue-btn {margin-left: auto;}
    .admin-class-filter .mypage-datepicker,.admin-class-filter .mypage-select {width: calc(50% - 5px);}
    .admin-class-filter .mypage-datepicker .datepicker {padding-left: 36px;}
    .admin-class-filter .mypage-select .custom-select select {padding-left: 26px;}
    .admin-progress-item {padding-left: 0;}

    .admin-alarm-page .admin-message-grid {flex-wrap: wrap;}

    /* 이달의 교재 등록/수정 */
    .selected-monthly-book {align-items: center; flex-direction: column; min-height: unset; padding: 24px;}
    .selected-book-thumb {width: 140px;}
    .selected-book-title,
    .selected-book-bottom {justify-content: center;}

    /* 반응형 추가 260622 */
    .payment-register-modal .input-row .input-wrap {width: 100%;}
    .task-detail-head {flex-direction: column-reverse;}
}

@media screen and (max-width: 480px) {
    .admin-modal {padding: 16px;}
    .admin-summary-grid {gap: 10px;}
    .admin-summary-grid .admin-summary-card {width: calc(50% - 5px);}
    .admin-table-bottom .admin-pagination a, .admin-table-bottom .admin-pagination span {min-width: 28px; height: 28px; font-size: 12px;}
    .admin-detail-tabs .tab {padding: 0 10px;}
    .admin-table-bottom {flex-direction: column-reverse; row-gap: 10px; align-items: center;}
    .admin-dashboard-title.has-btn,
    .admin-book-page .admin-table-card .admin-section-head {flex-direction: column; align-items: flex-start; row-gap: 10px;}

    .feedback-modal .admin-modal-head {padding: 12px 16px;}
    .feedback-modal-summary {margin-inline: -16px;}
    .feedback-modal-body, .feedback-modal .admin-modal-bottom {padding-inline: 16px;}
    .admin-detail-card:has(.admin-detail-tabs.absolute) {padding-top: calc(46px + 14px) !important;}
    .payment-warning-top {flex-direction: column; align-items: flex-start;}
    
    .admin-book-page .admin-table-card .admin-section-head {padding: 0; padding-bottom: 20px;}
    .admin-book-filter {flex-wrap: wrap;}

    /* 이달의 교재 등록/수정 */
    .monthly-book-form-head {padding: 16px;}
    .monthly-book-form-body {padding: 16px;}
    .monthly-book-form-head p {font-size: 14px;}
    .selected-monthly-book {padding: 18px;}
    .selected-book-thumb {width: 120px;}
    .selected-book-title {flex-direction: column-reverse;}
    .selected-book-title h4 {font-size: 16px; text-align: center;}
    .selected-book-bottom {flex-wrap: wrap; gap: 8px;}
    .selected-book-bottom strong {font-size: 20px;}
    .selected-book-bottom span {font-size: 14px;}
    .monthly-grade-check-list {gap: 8px;}
    .monthly-grade-check-list span {min-height: 34px; padding: 0 14px; font-size: 14px;}
    .monthly-book-switch-row {align-items: flex-start; justify-content: space-between;}
    .monthly-book-form-bottom {padding: 14px 16px;}

    /* 총관리자 강사 업무일지 */
    .admin-teacher-record-page .admin-teacher-record-calendar-card .attendance-card-head {padding: 22px 18px 18px;}
    .admin-teacher-record-page .record-teacher-head {align-items: flex-start; flex-wrap: wrap;}
    .admin-teacher-record-page .record-detail-box {padding: 13px;}
    /* 반응형 추가 260622 */
    .admin-alarm-page .message-byte-info {flex-direction: column; align-items: flex-end; word-break: keep-all;}
    .admin-alarm-page .message-byte-info p {width: 100%; font-size: 14px;}
}

@media screen and (max-width: 375px) {
    /* 반응형 추가 260622 */
    .admin-section-head {flex-direction: column; align-items: flex-start;}
    .admin-section-head p {word-break: keep-all;}
    .admin-student-detail-page .admin-detail-card:has(.admin-detail-tabs.absolute) .admin-detail-section:has(.admin-table) .admin-section-head {margin-inline: 0; flex-direction: column; row-gap: 12px;}
    .monthly-book-notice {flex-direction: column; row-gap: 8px; align-items: flex-start;}
    .admin-alarm-page .admin-message-type {column-gap: 8px;}
    .admin-detail-profile li, .admin-detail-parent li {flex-direction: column; align-items: flex-start;}
    .feedback-modal-summary dl {width: 100%;}
}