/* ===== 기본 ===== */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    font-family: 'Nanum Gothic', '맑은 고딕', 'Malgun Gothic', 'Apple SD Gothic Neo', 'Meiryo', 'PingFang SC', 'Microsoft YaHei', sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #222;
    background: #fff;
    text-align: center;
    word-break: keep-all;
    overflow-wrap: break-word;
}

img { max-width: 100%; }

[hidden] { display: none !important; }

.container {
    width: 100%;
    max-width: 1024px;
    margin: 0 auto;
    padding: 0 1rem;
}

/* ===== 헤더 ===== */
.site-header {
    padding: 0.8rem 1rem 0;
}
.site-header::after {
    content: '';
    display: block;
    margin-top: 0.7em;
    border-bottom: 1px dashed #ccc;
}
.site-title {
    margin: 0.4em 0;
    font-size: 1.4em;
    font-weight: 600;
}
.site-title a {
    color: #000;
    text-decoration: none;
}
.site-logo {
    height: 1.28em;
    vertical-align: bottom;
    position: relative;
    top: 0.14em;
}
.top-menu__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: baseline;   /* 링크와 로그아웃 단추(form 안 button)의 글자 줄을 맞춤 */
    margin: 0;
    padding: 0;
    list-style: none;
}
/* 구분 점은 메뉴 사이(li 앞)에 — 링크 안에 들어가지 않게 (눌리거나 밑줄이 생기지 않음) */
.top-menu__list li + li::before {
    content: '・';
    color: #aaa;
}
.top-menu a {
    color: #337;
    text-decoration: none;
    padding: 0.2em 0;
}
.top-menu a:hover { text-decoration: underline; }
.top-menu__admin { color: #9f0024 !important; }

.main-content {
    min-height: 650px;
    padding-bottom: 2rem;
}

/* ===== 섹션 ===== */
.section-title {
    margin: 2em 0 1em;
    padding: 0 0 0.3em 1em;
    font-size: 1em;
    font-weight: 600;
    color: #4d4c41;
    text-align: left;
    position: relative;
}
.section-title::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: linear-gradient(to right, #1e5799 0%, #1e5799 16%, #27c4c4 25%, #16af21 100%);
}

.info-box {
    margin: 1.5em auto;
    padding: 1.2em 1.5em;
    max-width: 500px;
    border: 2px dashed #eee;
    border-radius: 15px;
    color: #666;
    font-size: 0.867em;
    line-height: 1.6;
    text-align: left;
}
.info-box ul { margin: 0; padding-left: 1.2em; }
.info-box li { margin: 0.3em 0; }

.empty { color: #888; }

/* ===== 나의 훈련현황 ===== */
.history-list {
    max-width: 600px;
    margin: 1em auto;
    padding: 0;
    list-style: none;
    font-size: 0.86em;
    text-align: left;
    border: 1px solid #eee;
    border-radius: 1em;
    overflow: hidden;
}
.history-list__item {
    padding: 1em;
    line-height: 1.5;
}
.history-list__item + .history-list__item { border-top: 1px solid #eee; }
.history-list__meta { font-size: 0.86em; color: #666; }
.history-list__toggle button {
    display: block;
    width: 100%;
    padding: 0.3em;
    border: 0;
    background: #d5d3cb;
    color: #fff;
    font: inherit;
    font-size: 0.8em;
    font-weight: 700;
    cursor: pointer;
}

/* ===== 구분 태그 ===== */
.tag, .tag-s {
    display: inline-block;
    color: #fff;
    font-weight: 800;
    background-color: #ccc;
}
.tag {
    position: absolute;
    top: -1.2rem;
    left: 1rem;
    width: 3.2rem;
    height: 3.2rem;
    line-height: 3.2rem;
    border-radius: 50%;
    font-size: 0.7rem;
    text-align: center;
    white-space: nowrap;
    box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.25);
}
.tag-s {
    font-size: 0.7em;
    padding: 0.1em 0.4em;
    border-radius: 0.5em;
    vertical-align: middle;
}
.tag--con  { background-color: #a60072; }
.tag--trn1 { background-color: #a50000; }
.tag--trn3 { background-color: #a65300; }
.tag--trn4 { background-color: #a6a100; }
.tag--trn5 { background-color: #2ba600; }
.tag--trn6 { background-color: #0061a6; }
.tag--trn7 { background-color: #4b00a6; }
.tag--etc  { background-color: #8800a6; }

/* ===== 행사 카드 ===== */
.event-list {
    max-width: 800px;
    margin: 0 auto;
}
.event-card {
    position: relative;
    margin: 2.5em 0.2em;
    padding: 1.8em 1em 0.5em;
    border-radius: 1em;
    background: #fff;
    box-shadow: 2px 2px 8px #949494;
}
.event-card__title {
    margin: 0.5em 0;
    font-size: 1.2em;
    font-weight: 700;
    line-height: 1.3;
}
.event-card__date,
.event-card__place {
    margin: 0.2em 0;
}
.event-card__place { color: #555; }
.event-card__actions { margin: 1.2em 0 1em; }

/* ===== 버튼 ===== */
.btn {
    display: inline-block;
    padding: 0.8em 1.2em;
    border: 0;
    font: inherit;
    font-weight: 700;
    color: #fff;
    text-decoration: none;
    line-height: 1.3;
}
.btn--primary { background-color: #0079c4; cursor: pointer; }
.btn--primary:hover { background-color: #00649f; }
.btn--sky { background-color: #378ce6; }
.btn--closed { background-color: #ccc; }
.btn--registered { background-color: #32b3b3; }

/* ===== 신청 상태·신청서 (기존 training.php 색) ===== */
.btn--status1 { background-color: #27a62a; }
.btn--status2, .btn--status3 { background-color: #a62628; }
.btn--status4 { background-color: #7c7c7c; }
.ev-low { color: #05aedc; }
.ev-high { color: #e82801; }
.ev-note { margin: 0.6em 0 0; font-size: 0.85em; color: #888; }
.ev-info, .ev-apply { display: block; }
.ev-info > summary, .ev-apply > summary { list-style: none; cursor: pointer; }
.ev-info > summary::-webkit-details-marker, .ev-apply > summary::-webkit-details-marker { display: none; }
.ev-info__small { font-size: 0.86em; font-weight: 400; }
.ev-info__body {
    max-width: 26em;
    margin: 0.8em auto 0;
    padding: 0.8em 1em;
    border-radius: 0.8em;
    background: #f3f7f7;
    font-size: 0.9em;
    line-height: 1.6;
}
.ev-info__body p { margin: 0.2em 0; }
.ev-info__bank { word-break: keep-all; }
.ev-info__sub { font-size: 0.88em; color: #666; }
/* 신청서: 펼치면 위 단추는 숨김 (기존처럼 단추가 사라지고 신청서가 나옴) */
.ev-apply[open] > summary { display: none; }
.ev-apply__body { max-width: 26em; margin: 0 auto; }
.ev-apply__me {
    margin: 0.5em 0 1em;
    padding: 1em;
    border-radius: 1em;
    background: #eee;
    font-size: 0.9em;
    line-height: 1.5;
}
.ev-apply__me p { margin: 0 0 0.6em; }
.ev-apply__name { font-size: 1.2em; }
.ev-apply__form {
    padding: 1em;
    border-radius: 1em;
    background: #f0f0e0;
    font-size: 0.9em;
    line-height: 2;
}
.ev-apply__form label { display: block; margin: 0.3em 0; }
.ev-apply__form select, .ev-apply__form input[type=text] { font: inherit; padding: 0.2em 0.3em; max-width: 100%; }
.ev-apply__form input[type=text] { width: 8em; }
.ev-apply__fee { margin: 0 0 0.3em; }
.ev-apply__fee strong { font-size: 1.3em; font-weight: 500; }
.ev-apply__go { margin-top: 0.6em; background-color: #286bc7; font-size: 1.15em; padding: 0.7em 1.4em; }

/* ===== 푸터 ===== */
.site-footer {
    border-top: 1px dashed #ccc;
    background: linear-gradient(to bottom, #eee calc(100% - 2em), #fff 100%);
    padding: 1em 1em 3em;
    font-size: 0.7em;
    line-height: 1.6;
    color: #888;
}
.site-footer p { margin: 0.3em 0; }
.site-footer__logo {
    width: 10em;
    filter: grayscale(100%);
    opacity: 0.6;
}

/* ===== 모바일 ===== */
@media (max-width: 700px) {
    body { font-size: 15px; }
    .site-title { font-size: 1.25em; }
    .main-content { min-height: 500px; }
    .container { padding: 0 0.75rem; }
    .info-box { padding: 1em 1.1em; }
    .event-card { padding-top: 2em; }
    .btn { padding: 0.8em 1.6em; }
}

/* ===== 공통 유틸 ===== */
.sr-only {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.req { color: #c00; }
.page-title {
    margin: 1.5em 0 0.5em;
    font-size: 1.8em;
    font-weight: 300;
    color: #aaa;
}

/* ===== 헤더: 로그아웃 버튼 / 사용자 ===== */
.top-menu__form { display: inline; margin: 0; }
.top-menu__form button {
    /* 링크와 똑같이 보이게 — 단추(inline-block)의 위아래 여백은 줄 높이를 늘려 글자가 아래로 처지므로 0 */
    padding: 0;
    vertical-align: baseline;
    border: 0;
    background: none;
    font: inherit;
    color: #337;
    cursor: pointer;
}
.top-menu__form button:hover { text-decoration: underline; }
.top-user { margin: 0.3em 0 0; font-size: 0.8em; color: #777; }

/* ===== 알림 ===== */
.flash, .form-alert {
    max-width: 600px;
    margin: 1em auto;
    padding: 0.8em 1em;
    border-radius: 0.6em;
    font-size: 0.9em;
}
.flash { margin-left: auto; margin-right: auto; width: calc(100% - 2rem); }
.flash--info    { background: #eef4fb; color: #245; }
.flash--success { background: #eaf7ec; color: #1d5b27; }
.flash--error, .form-alert { background: #fdeeee; color: #a01c1c; }

/* ===== 로그인 ===== */
.auth-box {
    max-width: 360px;
    margin: 4em auto 2em;
}
.auth-box__title {
    margin: 0 0 0.8em;
    font-size: 3em;
    font-weight: 800;
    color: #ddd;
}
.login-form input {
    display: block;
    width: 100%;
    margin: 0 0 0.6em;
    padding: 0.75em 0.9em;
    border: 1px solid #dfe6ee;
    border-radius: 0.4em;
    background: #eff3f7;
    font: inherit;
}
.login-form input:focus { outline: 2px solid #0079c4; outline-offset: 0; background: #fff; }
.btn--block { display: block; width: 100%; margin-top: 0.4em; }
.auth-links { display: flex; flex-wrap: wrap; justify-content: center; margin: 2em 0 0; padding: 0; list-style: none; }
.auth-links a { color: #337; text-decoration: none; }
.auth-links a:hover { text-decoration: underline; }
/* 구분 점은 항목 사이(li 앞)에 — 링크 밖이라 눌리거나 밑줄이 생기지 않음 */
.auth-links li + li::before { content: '・'; color: #aaa; margin: 0 0.3em; }

/* ===== 가입 단계 ===== */
.steps {
    display: flex;
    justify-content: center;
    gap: 0.4em;
    margin: 0 0 1.5em;
    padding: 0;
    list-style: none;
    font-size: 0.8em;
    counter-reset: step;
}
.steps li {
    padding: 0.4em 0.9em;
    border-radius: 1em;
    background: #f0f0f0;
    color: #999;
    counter-increment: step;
}
.steps li::before { content: counter(step) '. '; }
.steps .is-active { background: #0079c4; color: #fff; font-weight: 700; }

/* ===== 약관 ===== */
.join-terms { max-width: 760px; margin: 0 auto; text-align: left; }
.terms-title { margin: 1.5em 0 0.5em; font-size: 1em; color: #4d4c41; }
.terms-box {
    height: 15em;
    overflow-y: auto;
    padding: 0 1em;
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    font-size: 0.8em;
    line-height: 1.6;
    color: #555;
}
.terms-box h2 { font-size: 1.2em; }
.check { display: block; margin: 0.6em 0; font-size: 0.9em; cursor: pointer; }
.check input { margin-right: 0.3em; vertical-align: middle; }
.check--all {
    margin-top: 1.5em;
    padding: 0.8em 1em;
    border-radius: 0.6em;
    background: #f5f5ef;
    font-weight: 700;
}
.form-actions { margin: 2em 0; text-align: center; }
.form-actions .btn { min-width: 10em; }

/* ===== 회원정보 폼 ===== */
.member-form { max-width: 760px; margin: 0 auto; text-align: left; }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-section {
    margin: 1.5em 0;
    padding: 0 0 0.5em;
    border: 0;
}
.form-section legend {
    display: block;
    width: 100%;
    margin-bottom: 0.8em;
    padding: 0.4em 1em;
    border-radius: 15px;
    background: #eee;
    font-weight: 700;
    text-align: center;
}
.field {
    display: grid;
    grid-template-columns: 9em 1fr;
    gap: 0.5em 1em;
    align-items: start;
    margin: 0 0 0.9em;
}
.field > label {
    padding-top: 0.55em;
    font-size: 0.85em;
    font-weight: 700;
    color: #666;
    text-align: right;
}
.field__body input[type=text],
.field__body input[type=email],
.field__body input[type=tel],
.field__body input[type=date],
.field__body input[type=password],
.field__body input[type=url],
.field__body select {
    display: block;
    width: 100%;
    max-width: 24em;
    margin-bottom: 0.4em;
    padding: 0.5em 0.6em;
    border: 1px solid #ccd;
    border-radius: 0.3em;
    background: #fff;
    font: inherit;
    font-size: 0.95em;
}
.field__body input:focus, .field__body select:focus { outline: 2px solid #0079c4; outline-offset: -1px; border-color: #0079c4; }
.field__body .is-invalid { border-color: #d33; background: #fff8f8; }
.field__msg { margin: 0 0 0.4em; font-size: 0.78em; color: #888; }
.field__msg--error { color: #c62828; font-weight: 700; }
.inline-group { display: flex; align-items: center; gap: 0.4em; max-width: 24em; }
.inline-group input { margin-bottom: 0.4em; }
.inline-group .btn, .inline-group .suffix { margin-bottom: 0.4em; white-space: nowrap; }
.field__body input.input-zip { width: 8em; flex: 0 0 auto; }
.btn--sub {
    padding: 0.5em 0.9em;
    background: #6b7a89;
    font-size: 0.85em;
    cursor: pointer;
    border-radius: 0.3em;
}
.btn--sub:hover { background: #56626e; }
.btn:disabled { opacity: 0.6; cursor: wait; }

@media (max-width: 700px) {
    .auth-box { margin-top: 2em; }
    .auth-box__title { font-size: 2.4em; }
    .field { grid-template-columns: 1fr; gap: 0.2em; }
    .field > label { padding-top: 0; text-align: left; }
    .field__body input[type=text],
    .field__body input[type=email],
    .field__body input[type=tel],
    .field__body input[type=date],
    .field__body input[type=password],
    .field__body input[type=url],
    .field__body select,
    .inline-group { max-width: none; font-size: 16px; }
    .page-title { font-size: 1.5em; }
}

/* ===== 내 정보 ===== */
.tabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.3em;
    margin: 0 auto 1.5em;
    padding: 0;
    font-size: 0.9em;
}
.tabs a {
    padding: 0.45em 1em;
    border-radius: 1.2em;
    background: #f0f0f0;
    color: #555;
    text-decoration: none;
}
.tabs a:hover { background: #e3e8ee; }
.tabs a.is-active { background: #0079c4; color: #fff; font-weight: 700; }

.sub-title {
    margin: 0 0 0.8em;
    padding: 0.4em 1em;
    border-radius: 15px;
    background: #eee;
    font-size: 1em;
    font-weight: 700;
}
.muted { color: #aaa; }
.info-text { color: #666; font-size: 0.9em; }

.profile { max-width: 760px; margin: 2em auto; }
.profile-list {
    display: grid;
    grid-template-columns: 9em 1fr;
    margin: 0;
    text-align: left;
    border-top: 1px solid #eee;
}
.profile-list dt, .profile-list dd {
    margin: 0;
    padding: 0.6em 0.8em;
    border-bottom: 1px solid #eee;
}
.profile-list dt { font-size: 0.85em; font-weight: 700; color: #666; text-align: right; background: #fafafa; }

.doc-panel { max-width: 760px; margin: 0 auto 2em; }
.doc-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.8em;
    margin: 0 0 1em;
    padding: 0;
    list-style: none;
}
.doc-card {
    padding: 0.5em;
    border: 1px solid #e5e5e5;
    border-radius: 0.8em;
    background: #fff;
}
.doc-card__thumb {
    display: block;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: 0.5em;
    background: #f3f3f3;
}
.doc-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.doc-card__thumb--empty {
    background: repeating-linear-gradient(45deg, #f6f6f6 0 10px, #efefef 10px 20px);
}
.doc-card__label { display: block; margin-top: 0.4em; font-size: 0.85em; font-weight: 700; color: #a01c1c; }
.doc-card.is-submitted .doc-card__label { color: #1d5b27; }

.upload-box { text-align: left; }
.upload-box > summary { list-style: none; display: table; margin: 0 auto 0.8em; }
.upload-box > summary::-webkit-details-marker { display: none; }
.upload-box[open] > summary { display: none; }
.upload-form {
    display: grid;
    grid-template-columns: 6em 1fr auto;
    gap: 0.5em;
    align-items: center;
    padding: 0.6em 0;
    border-bottom: 1px dashed #e5e5e5;
}
.upload-form label { font-size: 0.85em; font-weight: 700; color: #666; }
.upload-form input[type=file] { min-width: 0; font-size: 0.85em; }
.btn--small { padding: 0.45em 1em; font-size: 0.85em; border-radius: 0.3em; }

.field__label { padding-top: 0.55em; font-size: 0.85em; font-weight: 700; color: #666; text-align: right; }
.field__static { margin: 0 0 0.4em; padding: 0.5em 0; }
.btn--cancel { margin-left: 0.5em; padding: 0.8em 1.2em; font-size: 1em; min-width: 6em !important; }
.member-form--narrow { max-width: 560px; }
.auth-box--narrow { margin-top: 1em; }

.withdraw { max-width: 600px; margin: 0 auto; text-align: left; }
.warn-list { margin: 0 0 1.5em; padding-left: 1.2em; line-height: 1.8; color: #555; font-size: 0.9em; }
.withdraw-form { max-width: 360px; margin: 0 auto; }
.btn--danger { background: #c62828; cursor: pointer; }
.btn--danger:hover { background: #a01c1c; }

@media (max-width: 700px) {
    .doc-grid { grid-template-columns: repeat(2, 1fr); }
    .profile-list { grid-template-columns: 6.5em 1fr; }
    .profile-list dt { text-align: left; }
    .field__label { padding-top: 0; text-align: left; }
    .upload-form { grid-template-columns: 1fr auto; }
    .upload-form label { grid-column: 1 / -1; }
    .tabs { font-size: 0.85em; }
}

/* ===== 문의 게시판 ===== */
.qna-notice { text-align: left; }
.qna-notice__more { display: inline; }
.qna-notice__more > summary { display: inline; cursor: pointer; color: #337; }
.qna-notice__more[open] { display: block; margin: 0.5em 0; padding: 0.8em 1em; background: #fff; border-radius: 0.3em; font-size: 0.92em; line-height: 1.7; }
.qna-notice__more p { margin: 0.4em 0; }

.qna-search { display: flex; flex-wrap: wrap; gap: 0.4em; align-items: center; justify-content: flex-end; margin: 1em 0 0.5em; font-size: 0.9em; }
.qna-search select, .qna-search input[type=search] { font: inherit; padding: 0.35em 0.5em; border: 1px solid #ccc; border-radius: 0.3em; }
.qna-search input[type=search] { width: 12em; }
.qna-search__check { white-space: nowrap; }
.qna-search__reset { color: #888; font-size: 0.9em; }
.qna-count { margin: 1em 0 0.3em; text-align: left; font-size: 0.85em; color: #888; }
.qna-empty { margin: 2em 0; }

.qna-list { margin: 0; padding: 0; list-style: none; text-align: left; border-top: 2px solid #4d4c41; }
.qna-list__item { border-bottom: 1px solid #e5e5e5; }
.qna-list__item a { display: grid; grid-template-columns: auto 1fr auto; gap: 0.2em 0.8em; align-items: center; padding: 0.75em 0.4em; color: inherit; text-decoration: none; }
.qna-list__item a:hover { background: #e2ebf7; }
.qna-list__head { display: flex; gap: 0.3em; }
.qna-list__subject { min-width: 0; overflow-wrap: anywhere; }
.qna-list__replies { margin-left: 0.2em; font-size: 0.85em; color: #c62828; font-weight: 700; }
.qna-list__file { font-size: 0.85em; }
.qna-list__meta { font-size: 0.82em; color: #888; white-space: nowrap; }
.qna-list__id { color: #aaa; font-size: 0.92em; }

.qna-cat, .qna-state { display: inline-block; padding: 0.15em 0.5em; border-radius: 0.25em; font-size: 0.78em; font-weight: 700; line-height: 1.4; white-space: nowrap; }
.qna-cat { background: #e8eef5; color: #3b5168; }
.qna-cat--refund { background: #fdeeee; color: #a01c1c; }
.qna-state--wait { background: #fff4d6; color: #8a6100; }
.qna-state--done { background: #e3f4e5; color: #1d6b2a; }

.pager { margin: 1.2em 0; display: flex; flex-wrap: wrap; gap: 0.3em; justify-content: center; }
.pager a { min-width: 2.2em; padding: 0.35em 0.5em; border: 1px solid #ddd; border-radius: 0.3em; color: #444; text-decoration: none; font-size: 0.9em; }
.pager a[aria-current] { background: #0079c4; border-color: #0079c4; color: #fff; font-weight: 700; }

.qna-thread { text-align: left; }
.qna-post { margin: 0 0 1em; padding: 1em 1.1em; border: 1px solid #e3e3e3; border-radius: 0.4em; background: #fff; }
.qna-post--root { border-top: 3px solid #4d4c41; }
.qna-post--staff { background: #f4f8fc; border-color: #cfdeee; }
.qna-post__head { margin-bottom: 0.8em; padding-bottom: 0.6em; border-bottom: 1px dashed #e0e0e0; }
.qna-post__tags { display: flex; gap: 0.3em; margin: 0 0 0.4em; }
.qna-post__subject { margin: 0 0 0.2em; font-size: 1.15em; overflow-wrap: anywhere; }
.qna-post__label { margin: 0 0 0.2em; font-weight: 700; color: #0061a6; }
.qna-post:not(.qna-post--staff) .qna-post__label { color: #6b5d00; }
.qna-post__meta { margin: 0; font-size: 0.82em; color: #888; }
.qna-post__edited { margin-left: 0.3em; }
.qna-post__images { margin: 0 0 1em; text-align: center; }
.qna-post__images img { display: block; max-width: 100%; height: auto; margin: 0 auto 0.6em; border: 1px solid #eee; }
.qna-post__files { margin: 1em 0 0; padding: 0.6em 0.8em 0.6em 2em; background: #fafafa; border-radius: 0.3em; font-size: 0.88em; }
.qna-post__files a { color: #245; }
.qna-post__actions { display: flex; flex-wrap: wrap; gap: 0.4em; justify-content: flex-end; align-items: flex-start; margin-top: 1em; }
.qna-del > summary { list-style: none; cursor: pointer; }
.qna-del > summary::-webkit-details-marker { display: none; }
.qna-del[open] > summary { display: none; }
.qna-del__form { display: flex; flex-wrap: wrap; gap: 0.5em; align-items: center; margin: 0; padding: 0.4em 0.6em; background: #fdeeee; border-radius: 0.3em; font-size: 0.88em; color: #a01c1c; }

/* 글 내용 (편집기 서식 class 와 기존 글의 표) */
.qna-body { line-height: 1.7; overflow-wrap: anywhere; }
.qna-body p, .qna-editor .ql-editor p { margin: 0; }
.qna-body h1, .qna-body h2, .qna-body h3 { margin: 0.4em 0; line-height: 1.4; }
.qna-body h1 { font-size: 1.6em; }
.qna-body h2 { font-size: 1.35em; }
.qna-body h3 { font-size: 1.15em; }
.qna-body ul, .qna-body ol { margin: 0.3em 0; padding-left: 1.6em; }
.qna-body blockquote { margin: 0.4em 0; padding: 0.2em 0 0.2em 0.9em; border-left: 4px solid #ccc; color: #555; }
.qna-body pre { margin: 0.4em 0; padding: 0.6em 0.8em; background: #23241f; color: #f8f8f2; border-radius: 0.3em; white-space: pre-wrap; font-size: 0.9em; }
.qna-body a { color: #0061a6; }
.qna-body table { width: 100%; margin: 0.4em 0; border-collapse: collapse; font-size: 0.92em; }
.qna-body td, .qna-body th { padding: 0.35em 0.5em; border: 1px solid #999; text-align: center; vertical-align: middle; }
.qna-body tr:nth-child(odd) td { background: #eee; }
.qna-body .ql-align-center { text-align: center; }
.qna-body .ql-align-right { text-align: right; }
.qna-body .ql-align-justify { text-align: justify; }
.qna-body .ql-size-small { font-size: 0.75em; }
.qna-body .ql-size-large { font-size: 1.5em; }
.qna-body .ql-size-huge { font-size: 2.5em; }
.qna-body .ql-indent-1 { padding-left: 3em; }
.qna-body .ql-indent-2 { padding-left: 6em; }
.qna-body .ql-indent-3 { padding-left: 9em; }
.qna-body .ql-indent-4 { padding-left: 12em; }
.qna-body .ql-indent-5 { padding-left: 15em; }
.qna-body .ql-indent-6 { padding-left: 18em; }
.qna-body .ql-indent-7 { padding-left: 21em; }
.qna-body .ql-indent-8 { padding-left: 24em; }
/* 글자색·배경색 (App\HtmlClean::COLORS / BACKGROUNDS 와 같아야 함) */
.ql-color-black { color: black; }
.ql-color-gray { color: gray; }
.ql-color-red { color: red; }
.ql-color-orangered { color: orangered; }
.ql-color-orange { color: orange; }
.ql-color-gold { color: gold; }
.ql-color-green { color: green; }
.ql-color-teal { color: teal; }
.ql-color-dodgerblue { color: dodgerblue; }
.ql-color-blue { color: blue; }
.ql-color-navy { color: navy; }
.ql-color-purple { color: purple; }
.ql-color-deeppink { color: deeppink; }
.ql-color-brown { color: brown; }
.ql-bg-yellow { background-color: yellow; }
.ql-bg-gold { background-color: gold; }
.ql-bg-lightgreen { background-color: lightgreen; }
.ql-bg-lightblue { background-color: lightblue; }
.ql-bg-pink { background-color: pink; }
.ql-bg-lavender { background-color: lavender; }
.ql-bg-lightgray { background-color: lightgray; }

/* 쓰기 */
.qna-form { max-width: 860px; margin: 0 auto; text-align: left; }
.qna-form__row { display: flex; flex-wrap: wrap; gap: 0.4em 0.8em; align-items: center; margin: 0 0 0.8em; }
.qna-form__label { min-width: 4em; font-size: 0.88em; font-weight: 700; color: #666; }
.qna-form__radio { cursor: pointer; }
.qna-form__subject { flex: 1 1 16em; min-width: 0; padding: 0.5em 0.6em; font: inherit; border: 1px solid #ccc; border-radius: 0.3em; }
.qna-form__subject:focus { outline: 2px solid #0079c4; outline-offset: -1px; border-color: #0079c4; }
.qna-form__sms { font-size: 0.88em; color: #555; cursor: pointer; }
.qna-form__files { align-items: flex-start; flex-direction: column; }
.qna-form__file { font-size: 0.88em; }
.qna-refund-note { margin: 0 0 0.6em; color: #a01c1c; }
.qna-files-input { margin: 0.8em 0; font-size: 0.88em; }
.qna-files-input input { display: block; margin-top: 0.3em; max-width: 100%; }
.qna-reply { max-width: none; margin-top: 1.5em; padding-top: 1em; border-top: 1px solid #e5e5e5; }
.qna-reply__title { margin: 0 0 0.6em; font-size: 1em; }
.qna-editor { margin: 0 0 0.6em; }
.qna-editor .ql-toolbar.ql-snow { border-radius: 0.3em 0.3em 0 0; background: #fafafa; }
.qna-editor .ql-container.ql-snow { border-radius: 0 0 0.3em 0.3em; font: inherit; font-size: 1em; }
.qna-editor .ql-editor { min-height: 14em; line-height: 1.7; }
.qna-reply .qna-editor .ql-editor { min-height: 8em; }
.qna-editor .ql-editor.ql-blank::before { font-style: normal; color: #aaa; }
/* 색 선택 칸: 밝은 색도 보이도록 테두리 */
.qna-editor .ql-picker.ql-color-picker .ql-picker-item { border: 1px solid #ddd; }

@media (max-width: 700px) {
    .qna-list__item a { grid-template-columns: 1fr; }
    .qna-list__meta { white-space: normal; }
    .qna-post { padding: 0.8em; }
    .qna-search { justify-content: flex-start; }
    .qna-search input[type=search] { flex: 1 1 8em; }
}

/* 문의 게시판 — 컨퍼런스 신청자 글 */
.qna-cat--conf { background: #151532; color: #fff; }
.qna-conf { margin: 0 0 1.2em; }
.qna-conf__title { margin: 0 0 0.6em; font-size: 1em; }
.qna-conf__title small { font-weight: 400; color: #777; }
.qna-conf__dl { display: grid; grid-template-columns: 7em 1fr; gap: 0.35em 1em; margin: 0; font-size: 0.92em; }
.qna-conf__dl dt { font-weight: 700; color: #666; }
.qna-conf__dl dd { margin: 0; }
.qna-conf__persons { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 0.2em 1em; }
.qna-conf__persons .is-refunded { color: #999; text-decoration: line-through; }
.qna-conf__link { margin: 0.8em 0 0; }
.qna-conf__link small { color: #777; margin-left: 0.5em; }

/* 아이디/비밀번호 찾기 */
/* 문자 발송이 꺼져 있을 때 비밀번호 찾기 안내 (켜면 화면에서 사라짐) */
.form-alert.find-sms-off { margin: 0 0 0.8em; border: 1px solid #e3a3a3; font-weight: 700; line-height: 1.5; word-break: keep-all; }
.find-tabs { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 1.2em; border-bottom: 2px solid #dde; }
.find-tabs a { padding: 0.6em 0; text-align: center; color: #666; text-decoration: none; }
.find-tabs a[aria-current="page"] { margin-bottom: -2px; border-bottom: 2px solid #0079c4; color: #0079c4; font-weight: 700; }
.find-lead { margin: 0 0 1em; font-size: 0.9em; color: #555; line-height: 1.6; }
.find-result { margin: 0 0 1.2em; padding: 0.9em 1em; border-radius: 0.5em; background: #f2f8ff; line-height: 1.6; }
.find-result p { margin: 0.3em 0; }
.find-ids { margin: 0.5em 0; padding: 0; list-style: none; font-size: 1.15em; font-weight: 700; letter-spacing: 0.03em; }
.find-note { font-size: 0.85em; color: #666; line-height: 1.6; }
.find-next { margin-top: 0.8em; }
.find-via { display: flex; flex-direction: column; gap: 0.4em; margin: 0.3em 0; font-size: 0.92em; }
.find-via label { display: flex; align-items: center; gap: 0.6em; padding: 0.65em 0.9em; border: 1px solid #dfe6ee; border-radius: 0.4em; background: #fff; cursor: pointer; }
.find-via label:hover { border-color: #b9cde0; }
.find-via label:has(input:checked) { border-color: #0079c4; background: #f2f8ff; color: #0b4f8a; font-weight: 700; }
/* .login-form input 의 칸 모양(width 100% 등)을 라디오에는 쓰지 않음 */
.login-form .find-via input[type="radio"] { display: inline-block; width: auto; flex: none; margin: 0; padding: 0; border: 0; background: none; accent-color: #0079c4; }
.login-form .find-via input[type="radio"]:focus { outline: 2px solid #0079c4; outline-offset: 2px; }
.find-cancel { margin: 0.8em 0 0; text-align: center; }
.find-form .field__msg--error { margin: -0.3em 0 0.3em; }
.find-logout { display: block; margin: 0.8em 0; font-size: 0.92em; cursor: pointer; }
.find-logout small { display: block; margin-left: 1.6em; color: #777; }
.find-note--field { margin: -0.3em 0 0.6em; }
.find-label { display: block; margin: 0.2em 0 0.3em; font-size: 0.85em; color: #666; text-align: left; }
.find-ids small { font-weight: 400; font-size: 0.8em; color: #666; }
