/* 신고제보 공통 모달 */
@keyframes reportModalShow {
	from {opacity: 0; transform: translateY(1.5rem);}
	to {opacity: 1; transform: translateY(0);}
}

.report-modal {--rm-accent: #e9232d; --rm-soft: #fff7f7; --rm-line: #ffc7cc; --rm-ink: #222; --rm-btn-hover: #a1161d; --rm-change-btn: #004bd3; --rm-change-btn-hover: #002d7f; position: fixed; inset: 0; width: calc(100% - 4rem); max-width: 90rem; height: auto; max-height: 90vh; max-height: min(90dvh, calc(100dvh - 4rem)); margin: auto; padding: 3rem; padding-right: 2rem; border: 0; border-radius: 1.2rem; box-sizing: border-box; background: #fff; color: #16304b; font-family: 'Pretendard', sans-serif; text-align: left; overflow: hidden; box-shadow: 0 0.4rem 2rem rgba(0, 0, 0, 0.3); border: 0.5rem solid var(--rm-accent);}
.report-modal[data-report-type="policy"] {--rm-accent: #004bd3; --rm-soft: #f3f7ff; --rm-line: #bfd6ff; --rm-ink: #222; --rm-btn-hover: #002d7f; --rm-change-btn: #e9232d; --rm-change-btn-hover: #a1161d;}
.report-modal::backdrop {background: rgba(0, 0, 0, 0.5);}
.report-modal[open] {display: flex; flex-direction: column; animation: reportModalShow 0.3s ease;}

/* 상단 */
.report-modal .rm-header {position: static; flex-shrink: 0; margin-bottom: 3rem; border-bottom: 0; background: #fff; text-align: center;}
.report-modal .rm-header-tags {display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.8rem; margin-bottom: 1rem;}
.report-modal .rm-badge {padding: 0.6rem 1rem; border-radius: 2rem; background: var(--rm-soft); color: var(--rm-accent); font-size: 1.2rem; font-weight: 700; line-height: 1;}
.report-modal .rm-badge.rm-state {background: #f9f9f9; color: #666; border: none;}
.report-modal .rm-title-row {display: flex; flex-direction: column; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0rem;}
.report-modal .rm-title {display: flex; align-items: center; justify-content: center; gap: 1rem; margin: 0; padding: 0; color: #111; font-size: 2.4rem; font-weight: 700; line-height: 1.4; text-align: center; word-break: keep-all;}
.report-modal .rm-title img {flex-shrink: 0; width: 2.4rem; height: 2.4rem; object-fit: contain;}
.report-modal .rm-subtitle {margin: 0; color: var(--rm-accent); font-size: 1.6rem; font-weight: 500; line-height: 1.5; text-align: center; word-break: keep-all;}
.report-modal[data-report-type="policy"] .rm-subtitle {color: #71859a;}
.report-modal .rm-change-btn {display: flex; justify-content: center; align-items: center; gap: 1rem; background: var(--rm-change-btn); border-radius: 0.6rem; padding: 1rem 1rem; margin-top: 1rem; transition: 0.3s;}
.report-modal .rm-change-btn p {font-size: 1.4rem; color: #fff; font-weight: 700; line-height: 1;}
.report-modal .rm-change-btn img {width: 1.3rem; filter: invert(100%) sepia(0%) saturate(1%) hue-rotate(102deg) brightness(104%) contrast(101%);}
.report-modal .rm-change-btn:hover {background: var(--rm-change-btn-hover);}

/* 닫기 버튼 */
.report-modal .rm-close {position: absolute; top: 0.8rem; right: 1rem; display: flex; align-items: center; justify-content: center; width: 2.6rem; height: 2.6rem; margin: 0; padding: 0; border: 0; border-radius: 0.5rem; background: transparent; color: #9aa8b9; font-size: 2.6rem; line-height: 1;}
.report-modal .rm-close:hover {color: #000;}

/* 본문 및 스크롤 */
.report-modal .rm-form {display: flex; flex-direction: column; flex: 0 1 auto; min-height: 0; margin: 0; padding: 0;}
.report-modal .rm-body {flex: 0 1 auto; min-height: 0; padding: 0; padding-right: 1rem; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable;}

/* 안내 박스 */
.report-modal .rm-notice {margin: 0 0 3rem; padding: 2rem; border-radius: 1.2rem; background: var(--rm-soft); border: 0.2rem solid var(--rm-accent);}
.report-modal .rm-notice-copy {min-width: 0;}
.report-modal .rm-notice-main {margin: 0; color: var(--rm-ink); font-size: 1.8rem; font-weight: 400; line-height: 1.5; word-break: keep-all;}
.report-modal .rm-notice-main strong {color: var(--rm-accent); font-weight: 700; text-decoration: underline; text-underline-offset: 2px;}
.report-modal[data-report-type="policy"] .rm-notice-main {text-align: center; margin-bottom: 2rem;}
.report-modal .rm-notice-caution {}
.report-modal .rm-notice-caution p {font-size: 1.4rem; color: #666; font-weight: 400; padding-left: 1.2rem; text-indent: -1.2rem;}
.report-modal .rm-notice-caution p strong {color: #444; font-weight: 600; text-decoration: underline; text-underline-offset: 2px;}
.report-modal .rm-notice-sub {margin: 0.5rem 0 0; color: #444; font-size: 1.4rem; font-weight: 300; line-height: 1.5; word-break: keep-all;}
.report-modal .rm-notice-main .point-color {font-weight: 700; color: var(--rm-accent);}
.report-modal .rm-notice-main .main-caution {font-size: 1.4rem; font-weight: 700; color: #d92000;}

/* 입력 영역 제목 */
.report-modal .rm-section {min-width: 0; margin: 0 0 2.6rem; padding: 0; border: 0;}
.report-modal .rm-section:last-child {margin-bottom: 0;}
.report-modal .rm-section-head {margin-bottom: 1.5rem;}
.report-modal .rm-section-title {margin: 0; padding: 0; color: #000; font-size: 1.8rem; font-weight: 700; line-height: 1.5;}
.report-modal .rm-hint {margin: 0; color: #444; font-size: 1.4rem; font-weight: 400; line-height: 1.5;}
.report-modal .rm-multiple {padding: 0.3rem 1rem; border: 1px solid var(--rm-line); border-radius: 2rem; background: var(--rm-soft); color: var(--rm-accent); font-size: 1.2rem; font-weight: 600; line-height: 1.2;}

/* 입력 항목 */
.report-modal .rm-fields {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem;}
.report-modal .rm-fields-two {grid-template-columns: repeat(2, minmax(0, 1fr));}
.report-modal .rm-field {display: flex; flex-direction: column; min-width: 0; gap: 0.6rem; margin: 0; color: #000; font-size: 1.5rem; font-weight: 400; line-height: 1.5;}
.report-modal .rm-required {color: #e9232d;}
.report-modal .rm-field input, .report-modal .rm-field select, .report-modal .rm-field textarea {display: block; width: 100%; min-width: 0; min-height: 4.2rem; margin: 0; padding: 0.9rem 1.2rem; border: 1px solid #cad3df; border-radius: 0.8rem; box-sizing: border-box; background: #fff; color: #000; font-family: inherit; font-size: 1.4rem; font-weight: 400; line-height: 1.5; appearance: auto; box-shadow: none;}
.report-modal .rm-field input:focus, .report-modal .rm-field select:focus, .report-modal .rm-field textarea:focus {border: 1px solid var(--rm-accent);}
.report-modal .rm-field input::placeholder, .report-modal .rm-field textarea::placeholder {color: #8a99aa; opacity: 1;}
.report-modal .rm-field textarea {min-height: 16rem; resize: vertical;}

/* 날짜 및 지역 선택 이미지 */
.report-modal .rm-date-control, .report-modal .rm-region-control {position: relative; display: block; width: 100%; min-width: 0;}
.report-modal .rm-control-icon {position: absolute; top: 50%; right: 1.3rem; display: block; width: 1.3rem; height: 1.3rem; object-fit: contain; transform: translateY(-50%); pointer-events: none;}
.report-modal .rm-control-icon.area {width: 1rem; height: 1rem; transition: transform 0.2s ease;}
.report-modal .rm-field .rm-date-control input[type="date"]::-webkit-calendar-picker-indicator {width: 1.6rem; height: 1.6rem; margin: 0; padding: 0; opacity: 0; cursor: pointer;}
.report-modal .rm-field .rm-region-control select:open + .rm-control-icon.area {transform: translateY(-50%) rotate(180deg);}
.report-modal .rm-field .rm-region-control select {padding-right: 3.8rem; appearance: none;}

/* 공통 셀렉트 선택창 */
@supports (appearance: base-select) {
    .report-modal .rm-field .rm-region-control select {appearance: base-select; display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer;}
    .report-modal .rm-field .rm-region-control select::picker(select) {appearance: base-select; max-height: 28rem; margin: 0.6rem 0; padding: 0.6rem; border: 1px solid var(--rm-line); border-radius: 1.2rem; box-sizing: border-box; background: #fff; color: #222; font-family: inherit; font-size: 1.4rem; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #cad3df transparent; box-shadow: 0 0.8rem 2.4rem rgba(16, 43, 71, 0.12);}
    .report-modal .rm-field .rm-region-control select:open {border-color: var(--rm-accent);}
    .report-modal .rm-field .rm-region-control select:focus-visible {outline: 1px solid var(--rm-accent); outline-offset: 0.2rem;}
    .report-modal .rm-field .rm-region-control select::picker-icon {display: none;}

    /* 옵션 */
    .report-modal .rm-field .rm-region-control select option {display: flex; align-items: center; gap: 1rem; min-height: 4.2rem; margin: 0; padding: 1rem 1.2rem; border: 0; border-radius: 0.8rem; background: #fff; color: #333; font-size: 1.4rem; font-weight: 400; line-height: 1.5; cursor: pointer;}
    .report-modal .rm-field .rm-region-control select option + option {margin-top: 0.4rem;}
    .report-modal .rm-field .rm-region-control select option:hover {background: var(--rm-soft); color: var(--rm-accent);}
    .report-modal .rm-field .rm-region-control select option:checked {background: var(--rm-soft); color: var(--rm-accent); font-weight: 700;}
    .report-modal .rm-field .rm-region-control select option:focus-visible {outline: 1px solid var(--rm-accent); outline-offset: -1px;}
    .report-modal .rm-field .rm-region-control select option::checkmark {order: 1; margin-left: auto; color: var(--rm-accent);}
}

/* 체크박스 */
.report-modal .rm-choice-grid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem;}
.report-modal .rm-choice-grid-five {grid-template-columns: repeat(5, minmax(0, 1fr));}
.report-modal .rm-choice-grid-two {grid-template-columns: repeat(2, minmax(0, 1fr));}
.report-modal .rm-choice {position: relative; display: flex; align-items: flex-start; gap: 0.8rem; min-width: 0; min-height: 4.4rem; margin: 0; padding: 1.1rem; border: 1px solid #d9e0e9; border-radius: 0.9rem; box-sizing: border-box; background: #fff; color: #333; font-size: 1.35rem; font-weight: 500; line-height: 1.5; word-break: keep-all; overflow-wrap: anywhere; cursor: pointer;}
.report-modal .rm-choice:hover {border-color: var(--rm-line); background: var(--rm-soft);}
.report-modal .rm-choice:has(input:checked) {border-color: var(--rm-accent); background: var(--rm-soft); color: #000; font-weight: 600;}
.report-modal .rm-choice input[type="checkbox"] {position: absolute; inset: 0; z-index: 1; display: block; width: 100%; height: 100%; margin: 0; padding: 0; opacity: 0; cursor: pointer;}
.report-modal .rm-check {position: relative; display: inline-block; flex-shrink: 0; width: 1.6rem; height: 1.6rem; margin-top: 0.2rem; border: 1px solid #8391a4; border-radius: 0.4rem; box-sizing: border-box; background: #fff;}
.report-modal .rm-check::after {content: ''; position: absolute; top: 0.2rem; left: 0.2rem; width: 0.8rem; height: 0.4rem; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); opacity: 0;}
.report-modal .rm-choice input:checked + .rm-check {border-color: var(--rm-accent); background: var(--rm-accent);}
.report-modal .rm-choice input:checked + .rm-check::after {opacity: 1;}
.report-modal .rm-choice-wide {_grid-column: span 2;}
.report-modal .rm-check-span {line-height: 1.5;}

/* 세부 분류 */
.report-modal .rm-subgroup {min-width: 0; margin: 0 0 2rem; padding: 0; border: 0;}
.report-modal .rm-subgroup:last-child {margin-bottom: 0;}
.report-modal .rm-subgroup legend {float: left; width: 100%; margin-bottom: 1rem; padding: 0; color: var(--rm-accent); font-size: 1.4rem; font-weight: 700; line-height: 1.5;}
/*.report-modal .rm-subgroup legend::before {content: ''; display: inline-block; width: 0.5rem; height: 0.5rem; margin: 0 0.6rem 0.2rem 0; border-radius: 50%; background: var(--rm-accent);}*/
.report-modal .rm-subgroup .rm-choice-grid {clear: both;}

/* 참고 가이드 */
.report-modal .rm-guide {margin-top: 1rem; border: 1px solid #dce4ee; border-radius: 1rem; overflow: hidden;}
.report-modal .rm-guide .rm-guide-head {display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.4rem; background: var(--rm-soft); color: #222; font-size: 1.4rem; font-weight: 600; line-height: 1.5;}
.report-modal .rm-guide table {width: 100%; border-collapse: collapse; table-layout: fixed; color: #60748b; font-size: 1.25rem; line-height: 1.6; border-top: none;}
.report-modal .rm-guide tr {border-bottom: none;}
.report-modal .rm-guide th, .report-modal .rm-guide td {padding: 1rem 1.2rem; border-top: 1px solid rgba(0 0 0 / 10%); text-align: left; vertical-align: top; word-break: keep-all; overflow-wrap: anywhere; color: #222;}
.report-modal .rm-guide th {width: 25%; background: var(--rm-soft); font-weight: 600;}

/* 사례 내용 및 첨부 영역 제목 */
.report-modal .rm-case-section .rm-field textarea {min-height: 20rem;}
.report-modal .rm-opinion-section .rm-field textarea {min-height: 12rem;}

/* 자료활용 동의 */
.report-modal .rm-consent {display: flex; align-items: stretch; gap: 1.2rem; margin-bottom: 2.6rem;}
.report-modal .rm-consent-title {display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin: 0; padding: 1rem 1.6rem; border-radius: 0.6rem; background: var(--rm-accent); color: #fff; font-size: 1.4rem; font-weight: 700; line-height: 1;}
.report-modal .rm-consent-choice {flex: 1; min-width: 0; gap: 1rem; padding: 1rem 1.4rem; border: 1px solid var(--rm-line); border-radius: 0.6rem; background: var(--rm-soft); color: #222; font-size: 1.4rem;}
.report-modal .rm-consent-choice:has(input:checked) {font-weight: 500;}

/* 파일 선택 영역 */
.report-modal .rm-upload {position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.6rem; min-height: 14rem; padding: 2rem; border: 2px dashed var(--rm-line); border-radius: 1rem; box-sizing: border-box; background: var(--rm-soft); text-align: center; cursor: pointer; transition: border-color 0.2s;}
.report-modal .rm-upload:hover {border-color: var(--rm-accent);}
.report-modal .rm-upload .rm-upload-input {position: absolute; inset: 0; z-index: 1; display: block; width: 100%; height: 100%; margin: 0; padding: 0; opacity: 0; cursor: pointer;}
.report-modal .rm-upload-icon {display: block; flex-shrink: 0; width: 4rem; margin-bottom: 0.6rem; object-fit: contain;}
.report-modal .rm-upload-text {color: #222; font-size: 1.5rem; font-weight: 400; line-height: 1.5; word-break: keep-all; overflow-wrap: anywhere;}
.report-modal .rm-upload-guide {color: #666; font-size: 1.3rem; font-weight: 400; line-height: 1.5;}
.report-modal .rm-upload-link {color: var(--rm-accent); text-decoration: underline; text-underline-offset: 0.2rem; font-weight: 700;}

/* 첨부 파일 목록 */
.report-modal .rm-file-list {display: flex; flex-direction: column; gap: 0.6rem; margin: 1.2rem 0 0; padding: 1rem; border: 1px solid #e2e7ef; border-radius: 0.8rem; background: #f7f9fc; list-style: none;}
.report-modal .rm-file-item {display: flex; align-items: center; gap: 1rem; min-width: 0; margin: 0; padding: 0.6rem 1rem; border: 1px solid #e2e7ef; border-radius: 0.4rem; background: #fff;}
.report-modal .rm-file-info {display: flex; flex-wrap: wrap; align-items: baseline; flex: 1; min-width: 0; gap: 0.2rem 0.6rem; font-size: 1.4rem; line-height: 1;}
.report-modal .rm-file-type {flex-shrink: 0; color: var(--rm-accent); font-weight: 600;}
.report-modal .rm-file-name {min-width: 0; color: #222; font-weight: 500; overflow-wrap: anywhere;}
.report-modal .rm-file-size {color: #71859a; font-size: 1.2rem; white-space: nowrap;}
.report-modal .rm-file-remove {display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 2.8rem; height: 2.8rem; margin: 0; padding: 0; border: 0; border-radius: 0.4rem; background: transparent; color: #666; font-family: inherit; font-size: 2rem; line-height: 1; cursor: pointer; margin-top: -3px;}
.report-modal .rm-file-remove:hover {background: var(--rm-soft); color: var(--rm-accent);}
.report-modal .rm-file-remove:focus-visible {outline: 1px solid var(--rm-accent); outline-offset: 0.2rem;}

/* 하단 버튼 */
.report-modal .rm-footer {display: flex; align-items: center; justify-content: center; flex-wrap: wrap; flex-shrink: 0; gap: 1rem 1.6rem; margin-top: 3rem; padding: 0; border-top: 0; background: #fff; flex-direction: column;}
.report-modal .modal-reason {display: flex; align-items: center; justify-content: center; gap: 0.5rem;}
.report-modal .modal-reason img {width: 1.4rem; filter: invert(39%) sepia(0%) saturate(1620%) hue-rotate(202deg) brightness(101%) contrast(94%);}
.report-modal .modal-reason p {font-size: 1.4rem; color: #666; font-weight: 400;}
.report-modal .rm-actions {display: flex; align-items: stretch; justify-content: center; flex-shrink: 0; width: 100%; max-width: 50rem; min-width: 0; gap: 1rem;}
.report-modal .rm-button {display: inline-flex; align-items: center; justify-content: center; flex: 1; gap: 0.8rem; min-width: 0; min-height: 5.2rem; margin: 0; padding: 1rem 1.4rem; border: 0; border-radius: 0.6rem; box-sizing: border-box; background: #6c757d; color: #fff; font-family: inherit; font-size: 1.4rem; font-weight: 500; line-height: 1.5; word-break: keep-all; cursor: pointer; transition: background 0.3s;}
.report-modal .rm-button:hover {background: #5a6268; filter: none;}
.report-modal .rm-button-submit {min-width: 0; border-color: transparent; background: var(--rm-accent); color: #fff; box-shadow: none;}
.report-modal .rm-button-submit:hover {background: var(--rm-btn-hover);}
.report-modal .rm-button-submit img {width: 1.5rem; height: 1.5rem; object-fit: contain;}
.report-modal img[src=""] {visibility: hidden;}

/* 행정사법 신고자 정보 */
.report-modal .rm-reporter {padding: 1.6rem; border: 1px solid #dce5f2; border-radius: 1.2rem; background: #f7f9fc;}
.report-modal .rm-reporter-head {display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-bottom: 1.4rem; padding-bottom: 1.2rem; border-bottom: 1px solid #e2e8f1;}
.report-modal .rm-reporter-badge {margin: 0; padding: 0.5rem 0.8rem; border-radius: 0.4rem; background: #e3ecff; color: #2451b8; font-size: 1.3rem; font-weight: 600; line-height: 1.4;}
.report-modal[data-report-type="law"] .rm-reporter-badge {background: var(--rm-soft); color: var(--rm-accent);}
.report-modal .rm-reporter-name {color: #17243b; font-size: 1.5rem; font-weight: 600; line-height: 1.5;}

/* 정황 구조화 정보 */
.report-modal .rm-structured .rm-section-head {padding-bottom: 1rem; border-bottom: 1px solid #dce3ed;}
.report-modal .rm-structured-fields + .rm-structured-fields {margin-top: 1.6rem;}
.report-modal .rm-structured-details {margin-top: 1.6rem;}

/* 이용 동의 */
.report-modal .rm-use-consents {display: flex; flex-direction: column; gap: 1rem; margin: 0;}
.report-modal .rm-use-consent {position: relative; display: flex; align-items: flex-start; gap: 1rem; margin: 0; padding: 1.6rem; border: 1px solid #dce3ed; border-radius: 1rem; background: #f7f9fc; cursor: pointer;}
.report-modal .rm-use-consent input[type="checkbox"] {position: absolute; top: 1.8rem; left: 1.6rem; width: 1.6rem; height: 1.6rem; margin: 0; padding: 0; opacity: 0;}
.report-modal .rm-use-consent .rm-check {flex-shrink: 0;}
.report-modal .rm-use-consent input:checked + .rm-check {border-color: var(--rm-accent); background: var(--rm-accent);}
.report-modal .rm-use-consent input:checked + .rm-check::after {opacity: 1;}
.report-modal .rm-use-consent input:focus-visible + .rm-check {outline: 1px solid var(--rm-accent); outline-offset: 0.3rem;}
.report-modal .rm-use-consent input.is-invalid + .rm-check {border-color: var(--rm-accent); outline: 1px solid var(--rm-accent); outline-offset: 0.3rem;}
.report-modal .rm-use-consent-copy {display: block; min-width: 0;}
.report-modal .rm-use-consent-title {display: block; color: #26354b; font-size: 1.4rem; font-weight: 600; line-height: 1.5;}
.report-modal .rm-use-consent-description {display: block; margin-top: 0.5rem; color: #657187; font-size: 1.3rem; font-weight: 400; line-height: 1.6; word-break: keep-all; overflow-wrap: anywhere;}
.report-modal .rm-use-consent-description > span {display: block;}

/* 제도개선 기본정보 및 상세 입력 */
.report-modal .rm-policy-basic-extra {margin-top: 1.6rem;}
.report-modal .rm-policy-case-fields {margin: 2rem 0;}
.report-modal .rm-policy-case-fields .rm-policy-field-wide {grid-column: 1 / -1;}
.report-modal .rm-policy-case-fields .rm-field > span {font-weight: 600;}
.report-modal .rm-policy-case-fields textarea {min-height: 8rem;}
.report-modal[data-report-type="policy"] .rm-use-consent-title .rm-required {color: var(--rm-accent);}

/* 반응형 */
@media (max-width: 800px) {
	.report-modal .rm-choice-grid-five {grid-template-columns: repeat(3, minmax(0, 1fr));}
	.report-modal .rm-fields-three {grid-template-columns: repeat(2, minmax(0, 1fr));}
	.report-modal .rm-fields-three .rm-field:last-child {grid-column: 1 / -1;}
}

@media (max-width: 768px) {
	.report-modal {width: calc(100% - 3rem); max-height: calc(100vh - 3rem); max-height: calc(100dvh - 3rem); padding: 2.6rem 2.2rem 2.2rem;}
	.report-modal .rm-header {margin-bottom: 2.5rem;}
	.report-modal .rm-title {font-size: 2rem;}
	.report-modal .rm-close {top: 1.2rem; right: 1.2rem;}
	.report-modal .rm-footer {margin-top: 1.8rem;}
	.report-modal .rm-actions {gap: 0.8rem;}
	.report-modal .rm-button {min-height: 4.8rem;}
}

@media (max-width: 650px) {
	.report-modal .rm-title {gap: 0.6rem;}
	.report-modal .rm-title img {width: 2rem; height: 2rem;}
	.report-modal .rm-subtitle {font-size: 1.2rem;}
	.report-modal .rm-notice {gap: 0.8rem; padding: 1.4rem;}
	.report-modal .rm-fields {grid-template-columns: minmax(0, 1fr); gap: 1.4rem;}
	.report-modal .rm-choice-grid {grid-template-columns: minmax(0, 1fr);}
	.report-modal .rm-choice-grid-five {grid-template-columns: repeat(2, minmax(0, 1fr));}
	.report-modal .rm-choice-wide {grid-column: auto;}
	.report-modal .rm-consent {flex-direction: column; gap: 0.8rem;}
	.report-modal .rm-consent-title {align-self: flex-start; padding: 0.8rem 1.2rem;}
	.report-modal .rm-consent-choice {flex: none; padding: 1rem 1.2rem;}
	.report-modal .rm-upload {min-height: 13rem; padding: 1.6rem;}
	.report-modal .rm-upload-text {font-size: 1.3rem;}
	.report-modal .rm-file-list {padding: 0.8rem;}
	.report-modal .rm-file-item {gap: 0.6rem; padding: 0.6rem 0.8rem;}
	.report-modal .rm-reporter {padding: 1.4rem;}
    .report-modal .rm-reporter-head {gap: 0.8rem;}
    .report-modal .rm-structured-fields + .rm-structured-fields {margin-top: 1.4rem;}
    .report-modal .rm-structured-details {margin-top: 1.4rem;}
    .report-modal .rm-use-consent {gap: 0.8rem; padding: 1.4rem;}
    .report-modal .rm-use-consent input[type="checkbox"] {top: 1.6rem; left: 1.4rem;}
	.report-modal .rm-policy-basic-extra {margin-top: 1.4rem;}
}

@media (max-width: 480px) {
	.report-modal {width: calc(100% - 2rem); max-height: calc(100vh - 2rem); max-height: calc(100dvh - 2rem); padding: 2.4rem 1.6rem 1.8rem; border-radius: 1rem;}
	.report-modal .rm-header {margin-bottom: 1.6rem; padding: 0 2rem;}
	.report-modal .rm-title {font-size: 1.9rem;}
	.report-modal .rm-close {top: 1rem; right: 1rem;}
	.report-modal .rm-footer {margin-top: 1.6rem;}
	.report-modal .rm-button {min-height: 4.6rem; padding: 0.8rem;}
}

@media (max-width: 360px) {
	.report-modal {width: calc(100% - 1.6rem); max-height: calc(100vh - 1.6rem); max-height: calc(100dvh - 1.6rem); padding: 2.2rem 1.4rem 1.6rem;}
	.report-modal .rm-header {padding: 0 1.6rem;}
}

@media (prefers-reduced-motion: reduce) {
	.report-modal[open] {animation: none;}
	.report-modal .rm-close {transition: none;}
}


/* 신고제보 플로팅 배너 */
.report-floating {position: fixed; right: 2rem; bottom: 2rem; z-index: 10; display: flex; flex-direction: column; align-items: flex-end; gap: 1.2rem; width: 36rem; max-width: calc(100% - 4rem); font-family: 'Pretendard', sans-serif;}
.report-floating, .report-floating * {box-sizing: border-box;}
.report-floating button {font-family: inherit; cursor: pointer;}
.report-floating button:focus-visible {outline: 1px solid #004bd3; outline-offset: 0.3rem;}
.report-floating img[src=""] {visibility: hidden;}

/* 상단 박스 */
.report-floating .rf-panel {position: relative; display: flex; flex-direction: column; width: 100%; max-height: calc(100vh - 10rem); max-height: calc(100dvh - 10rem); border: 1px solid #dce2eb; border-radius: 1.8rem; background: #fff; overflow: hidden; box-shadow: 0 0.8rem 3rem rgba(0, 0, 0, 0.2);}
.report-floating .rf-panel[hidden] {display: none;}
.report-floating .rf-head {position: relative; flex-shrink: 0; padding: 2rem; text-align: center; padding-bottom: 0;}
.report-floating .rf-tags {display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0rem; margin-bottom: 0.5rem;}
.report-floating .rf-badge {padding: 0.8rem 1rem 0.7rem; border-radius: 2rem; background: #fff0f1; color: #d72832; font-size: 1.1rem; font-weight: 700; line-height: 1;}
.report-floating .rf-step {color: #7b8b9f; font-size: 1rem; font-weight: 600;}
.report-floating .rf-title {margin: 0; padding: 0; color: #000; font-size: 1.6rem; font-weight: 700; line-height: 1.5; word-break: keep-all;}
.report-floating .rf-description {margin: 0.2rem 0 0; color: #666; font-weight: 400; font-size: 1.2rem; line-height: 1.5; word-break: keep-all;}
.report-floating .rf-close {position: absolute; top: 0.8rem; right: 1rem; display: flex; align-items: center; justify-content: center; width: 2.6rem; height: 2.6rem; margin: 0; padding: 0; border: 0; border-radius: 0.5rem; background: transparent; color: #9aa8b9; font-size: 2.2rem; line-height: 1;}
.report-floating .rf-close:hover {color: #000;}

/* 모달 연결 버튼 */
.report-floating .rf-list {display: flex; flex-direction: column; gap: 1rem; min-height: 0; padding: 1.4rem; overflow-y: auto; overscroll-behavior: contain;}
.report-floating .rf-card {--rf-accent: #e9232d; --rf-soft: #fff1f2; display: flex; align-items: flex-start; gap: 1rem; flex-shrink: 0; width: 100%; min-width: 0; margin: 0; padding: 1.3rem 1.2rem; border: 1px solid #e7ecf2; border-radius: 1.4rem; background: #fff; text-align: left; box-shadow: 0 0.1rem 0.3rem rgba(20, 40, 65, 0.06); transition: border-color 0.2s, background 0.2s;}
.report-floating .rf-policy {--rf-accent: #004bd3; --rf-soft: #eef5ff;}
.report-floating .rf-card:hover {border-color: var(--rf-accent); background: var(--rf-soft);}
.report-floating .rf-icon {display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 3.8rem; height: 3.8rem; border-radius: 1.3rem; background: var(--rf-soft);}
.report-floating .rf-icon img {display: block; width: 2.2rem; height: 2.2rem; object-fit: contain;}
.report-floating .rf-card-content {display: flex; flex-direction: column; flex: 1; min-width: 0; gap: 0.4rem;}
.report-floating .rf-card-tags {display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.6rem;}
.report-floating .rf-card-badge {padding: 0.3rem 0.6rem; border-radius: 2rem; background: var(--rf-soft); color: var(--rf-accent); font-size: 1rem; font-weight: 700; line-height: 1;}
.report-floating .rf-card-category {background: #f9f9f9; color: #666;}
.report-floating .rf-card-title {display: block; color: #000; font-size: 1.4rem; font-weight: 700; line-height: 1.4; word-break: keep-all; overflow-wrap: anywhere;}
.report-floating .rf-card-description {display: block; color: #333; font-size: 1.2rem; font-weight: 500; line-height: 1.5; word-break: keep-all; overflow-wrap: anywhere;}
.report-floating .rf-arrow {align-self: center; flex-shrink: 0; width: 0.7rem; height: 0.7rem; margin-right: 0.2rem; border-top: 1px solid #a9b7c8; border-right: 1px solid #a9b7c8; transform: rotate(45deg);}
.report-floating .rf-footer {display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; flex-shrink: 0; gap: 0.4rem 1rem; padding: 1rem 1.4rem; border-top: 1px solid #edf0f5; background: #f5f7fa; color: #7b8b9f; font-size: 1.2rem; font-weight: 400; line-height: 1;}
.report-floating .rf-footer span {line-height: 1;}

/* 하단 빨간 버튼 */
.report-floating .rf-toggle {display: flex; align-items: center; justify-content: center; gap: 1rem; max-width: 100%; min-height: 4.8rem; margin: 0; padding: 1rem 1.4rem; border-radius: 5rem; background: linear-gradient(to bottom, #d10517, #c14550); color: #fff; transition: 0.2s;}
.report-floating .rf-toggle:hover {background: linear-gradient(to bottom, #b8101a, #df252e);}
.report-floating .rf-toggle-dot {position: relative; flex-shrink: 0; width: 1rem; height: 1rem; border-radius: 50%; background: #fff;}
.report-floating .rf-toggle-dot::after {content: ''; position: absolute; inset: 0; border: 1px solid #fff; border-radius: 50%; box-sizing: border-box; pointer-events: none; animation: reportFloatingPulse 1s ease-out infinite;}

@keyframes reportFloatingPulse {
	0% {transform: scale(1); opacity: 0.9;}
	100% {transform: scale(2.8); opacity: 0;}
}
.report-floating .rf-toggle-title {min-width: 0; font-size: 1.3rem; font-weight: 700; line-height: 1.4; word-break: keep-all;}
.report-floating .rf-toggle-label {flex-shrink: 0; padding: 0.5rem 1rem 0.7rem; border-radius: 2rem; background: rgba(100, 0, 0, 0.22); font-size: 1rem; font-weight: 600; line-height: 1;}

@media (max-width: 480px) {
	.report-floating {right: 1.2rem; bottom: 1.2rem; max-width: calc(100% - 2.4rem);}
	.report-floating .rf-panel {max-height: calc(100vh - 8.4rem); max-height: calc(100dvh - 8.4rem);}
	.report-floating .rf-toggle {min-height: 4.4rem; padding: 0.9rem 1.2rem;}
	.report-floating .rf-toggle-label {display: none;}
}

@media (max-width: 360px) {
	.report-floating .rf-list {padding: 1rem;}
	.report-floating .rf-card {gap: 0.8rem; padding: 1.2rem 1rem;}
	.report-floating .rf-icon {width: 3.2rem; height: 3.2rem;}
	.report-floating .rf-toggle {gap: 0.5rem;}
	.report-floating .rf-toggle-title {font-size: 1.2rem;}
}


/* 회원서비스 모달 */
.report-modal[data-report-type="member"] {--rm-accent: #0a276a; --rm-soft: #f4f7fc; --rm-line: #d9e2f0; --rm-btn-hover: #081d4f; height: fit-content;}
.report-modal[data-report-type="member"] img[src=""] {visibility: hidden;}
.report-modal[data-report-type="member"] .rm-subtitle {color: #71859a;}
.report-modal[data-report-type="member"] .rm-body {overflow-x: unset; overflow-y: unset;}

.report-modal .rm-member-tools {display: flex; justify-content: flex-end; margin-bottom: 0.5rem; position: absolute; top: 8%;}
.report-modal .rm-member-edit {display: inline-flex; align-items: center; gap: 1rem; padding: 1.3rem 2rem; border-radius: 1.2rem; box-sizing: border-box; background: #fff; color: var(--rm-accent); font-size: 1.6rem; font-weight: 700; line-height: 1.4; text-decoration: none; transition: background 0.2s ease; border: 1px solid var(--rm-accent);}
.report-modal .rm-member-edit-icon {display: block; flex-shrink: 0; width: 1.4rem; object-fit: contain; filter: invert(12%) sepia(34%) saturate(5649%) hue-rotate(217deg) brightness(90%) contrast(100%); transition: transform 0.2s ease;}
.report-modal .rm-member-edit span {line-height: 1; margin-top: 1px;}
.report-modal .rm-member-edit-arrow {display: block; flex-shrink: 0; width: 0.6rem; margin-left: 0.8rem; object-fit: contain; filter: invert(12%) sepia(34%) saturate(5649%) hue-rotate(217deg) brightness(90%) contrast(100%); transition: transform 0.2s ease;}
.report-modal .rm-member-edit:hover {background: var(--rm-accent); color: #fff;}
.report-modal .rm-member-edit:hover .rm-member-edit-icon {filter: invert(100%) sepia(9%) saturate(36%) hue-rotate(142deg) brightness(109%) contrast(104%);}
.report-modal .rm-member-edit:hover .rm-member-edit-arrow {filter: invert(100%) sepia(9%) saturate(36%) hue-rotate(142deg) brightness(109%) contrast(104%);}

.report-modal .rm-member-grid {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem;}

.report-modal .rm-member-register {--card-bg: #eff4ff; --card-accent: #3868d9; --card-border: #c5d5fa;}
.report-modal .rm-member-welfare {--card-bg: #fff1f5; --card-accent: #ca5079; --card-border: #efc4d2;}
.report-modal .rm-member-payment {--card-bg: #fff5e9; --card-accent: #b97124; --card-border: #efd3af;}
.report-modal .rm-member-certificate {--card-bg: #edf8f3; --card-accent: #28836a; --card-border: #bcded1;}

.report-modal .rm-member-link {display: flex; align-items: center; gap: 1.8rem; min-width: 0; min-height: 14rem; padding: 2.2rem; border: 1px solid transparent; border-radius: 2rem; box-sizing: border-box; background: var(--card-bg); color: #000; text-align: left; text-decoration: none; transition: border-color 0.25s ease, box-shadow 0.25s ease;}

.report-modal .rm-member-icon {display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 6.4rem; height: 6.4rem; border: 1px solid rgba(255, 255, 255, 0.9); border-radius: 1.8rem; box-sizing: border-box; background: #fff; box-shadow: 0 0.3rem 0.8rem rgba(28, 48, 78, 0.04); transition: transform 0.25s ease;}
.report-modal .rm-member-icon img {display: block; width: 2.5rem; object-fit: contain;}
.report-modal .rm-member-register .rm-member-icon img {width: 2.5rem;}
.report-modal .rm-member-welfare .rm-member-icon img {width: 2.8rem;}
.report-modal .rm-member-payment .rm-member-icon img {width: 3.2rem;}
.report-modal .rm-member-certificate .rm-member-icon img {width: 3.2rem;}

.report-modal .rm-member-name {flex: 1; min-width: 0; font-size: 2rem; font-weight: 700; line-height: 1.5; word-break: keep-all; overflow-wrap: anywhere; transition: color 0.25s ease;}

.report-modal .rm-member-arrow {display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 3.2rem; height: 3.2rem; margin-left: auto; border-radius: 50%; background: rgba(255, 255, 255, 0.85); transition: background-color 0.25s ease;}
.report-modal .rm-member-arrow img {display: block; width: 0.7rem; height: 1.2rem; object-fit: contain; filter: brightness(0) invert(0.4); transition: filter 0.25s ease, transform 0.25s ease;}

.report-modal .rm-member-link:is(:hover, :focus-visible) {border-color: var(--card-border); box-shadow: inset 0 0 0 1px var(--card-border);}
.report-modal .rm-member-link:is(:hover, :focus-visible) .rm-member-icon {transform: translateY(-0.3rem);}
.report-modal .rm-member-link:is(:hover, :focus-visible) .rm-member-name {color: var(--card-accent);}
.report-modal .rm-member-link:is(:hover, :focus-visible) .rm-member-arrow {background-color: var(--card-accent);}
.report-modal .rm-member-link:is(:hover, :focus-visible) .rm-member-arrow img {filter: brightness(0) invert(1); transform: translateX(0.1rem);}

@media (prefers-reduced-motion: reduce) {
    .report-modal .rm-member-link,
    .report-modal .rm-member-icon,
    .report-modal .rm-member-name,
    .report-modal .rm-member-arrow,
    .report-modal .rm-member-arrow img {transition: none;}
    .report-modal .rm-member-link:is(:hover, :focus-visible) .rm-member-icon,
    .report-modal .rm-member-link:is(:hover, :focus-visible) .rm-member-arrow img {transform: none;}
}

.report-modal .rm-member-edit:focus-visible,
.report-modal .rm-member-link:focus-visible {outline: 2px solid #0a276a; outline-offset: 2px;}

@media (max-width: 768px) {
    .report-modal .rm-member-grid {grid-template-columns: minmax(0, 1fr); gap: 1.2rem;}
    .report-modal .rm-member-link {min-height: 10rem; padding: 1.6rem; border-radius: 1.4rem;}
    .report-modal .rm-member-icon {width: 6rem; height: 6rem;}
    .report-modal .rm-member-register .rm-member-icon img {width: 2.5rem;}
	.report-modal .rm-member-welfare .rm-member-icon img {width: 2.8rem;}
	.report-modal .rm-member-payment .rm-member-icon img {width: 3.2rem;}
	.report-modal .rm-member-certificate .rm-member-icon img {width: 3.2rem;}
    .report-modal .rm-member-name {font-size: 1.8rem;}
    .report-modal .rm-member-arrow {width: 2.8rem; height: 2.8rem;}
	
	.report-modal .rm-member-tools {top: 5%;}
}
@media (max-width: 425px) {
	.report-modal .rm-member-edit {font-size: 1.2rem; padding: 1rem 1rem; border-radius: 1rem; gap: 0.5rem;}
	.report-modal .rm-member-edit-icon {width: 1rem;}
	.report-modal .rm-member-edit-arrow {width: 0.4rem; margin-left: 0.3rem;}
	.report-modal .rm-member-tools {position: static; justify-content: center; margin-bottom: 2rem;}
}