@charset "utf-8";
/* 0204 선수 프로필 목록 전용 */
.chess-profile-list{max-width:1400px;margin:0 auto;padding:10px 20px 65px;color:var(--color-text,#202a3a);font-size:16px;box-sizing:border-box}
.chess-profile-list *, .chess-profile-list *:before,.chess-profile-list *:after{box-sizing:border-box}
.chess-profile-heading{text-align:center;margin:10px auto 45px}
.chess-profile-heading>span,.chess-profile-eyebrow{display:block;color:#c89142;font-size:13px;font-weight:800;letter-spacing:2px}
.chess-profile-heading h2{width:auto!important;height:auto!important;overflow:visible!important;margin:10px 0 12px!important;padding:0!important;font-size:34px!important;line-height:1.35!important;color:var(--color-navy,#243f7c)}
.chess-profile-heading p{color:var(--color-text-sub,#666);font-size:16px}
.chess-profile-list #bo_cate{margin-bottom:22px}
.chess-profile-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 22px;padding:0 0 16px;border-bottom:1px solid #e1e5ed;color:#667184}
.chess-profile-toolbar strong{color:var(--color-navy,#243f7c)}
.chess-profile-toolbar-actions{display:flex;align-items:center;gap:10px}
.chess-profile-toolbar-actions a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border:1px solid #d8dfea;border-radius:7px;font-size:14px;font-weight:700;text-decoration:none}
.chess-profile-toolbar-actions .chess-profile-write-link{background:var(--color-navy,#243f7c);border-color:var(--color-navy,#243f7c);color:#fff}
.chess-profile-toolbar-actions .chess-profile-admin-link{color:#34435c;background:#fff}
.chess-profile-list #gall_ul.chess-profile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;margin:0;padding:0;list-style:none}
.chess-profile-list #gall_ul.chess-profile-grid:after{display:none}
.chess-profile-list #gall_ul.chess-profile-grid .gall_li{float:none!important;width:auto!important;margin:0!important;padding:0!important;min-width:0;clear:none!important;list-style:none}
.chess-profile-card{height:100%;background:#fff;border:1px solid #e5e9f0;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;position:relative;transition:box-shadow .2s,transform .2s}
.chess-profile-card:hover{box-shadow:0 14px 35px rgba(17,37,72,.10);transform:translateY(-3px)}
.chess-profile-photo{aspect-ratio:4/5;background:#eef1f5;overflow:hidden}
.chess-profile-photo img,.chess-profile-modal-photo img{display:block;width:100%;height:100%;object-fit:cover}
.chess-profile-no-photo{height:100%;min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#9ba8ba;background:#e8edf4}
.chess-profile-no-photo .fa{font-size:65px}.chess-profile-no-photo span{font-size:11px;letter-spacing:2px}
.chess-profile-info{padding:23px 22px 20px;display:flex;flex-direction:column;flex:1;min-width:0}
.chess-profile-info h3{font-size:23px;line-height:1.35;color:var(--color-navy,#243f7c);margin:0 0 10px;font-weight:800}
.chess-profile-intro{font-size:15px;line-height:1.7;color:#697487;margin:0 0 19px;word-break:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.chess-profile-facts,.chess-profile-modal-facts{margin:0 0 23px;padding:15px 0 0;border-top:1px solid #e9ecf2}
.chess-profile-facts>div,.chess-profile-modal-facts>div{display:grid;grid-template-columns:73px minmax(0,1fr);gap:8px;margin:0 0 9px;line-height:1.5;font-size:14px}
.chess-profile-facts dt,.chess-profile-modal-facts dt{font-weight:700;color:#56647a}
.chess-profile-facts dd,.chess-profile-modal-facts dd{margin:0;min-width:0;color:#293549;overflow-wrap:anywhere}
.chess-profile-more{margin-top:auto;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:45px;border:1px solid #dbe3ee;background:#f6f8fb;color:var(--color-navy,#243f7c);border-radius:7px;padding:0 15px;font-weight:800;font-size:14px;letter-spacing:.5px;cursor:pointer;text-decoration:none}
.chess-profile-more:hover{background:var(--color-navy,#243f7c);color:#fff}
.chess-profile-check{position:absolute;top:10px;left:10px;z-index:2;background:#fff;border-radius:5px;padding:7px}
.chess-profile-check input{width:17px;height:17px}
.chess-profile-bulk{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:0 0 20px;font-size:14px}
.chess-profile-bulk button{padding:8px 12px;border:1px solid #dce2eb;background:#fff;border-radius:5px;cursor:pointer}
.chess-profile-pagination{margin:35px auto 25px;text-align:center}
.chess-profile-search{display:flex;max-width:470px;margin:0 auto;border:1px solid #dce3ed;border-radius:8px;overflow:hidden;height:46px}
.chess-profile-search select{width:150px;border:0;border-right:1px solid #e3e8f0;background:#f8f9fb;padding:0 12px;font-size:14px}
.chess-profile-search input{flex:1;min-width:0;border:0;padding:0 13px;font-size:15px}
.chess-profile-search button{width:47px;border:0;background:var(--color-navy,#243f7c);color:#fff;cursor:pointer}
.chess-profile-empty{grid-column:1/-1;text-align:center;padding:70px 10px!important;color:#7a8493}
.chess-profile-modal[hidden]{display:none!important}
.chess-profile-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:25px}
.chess-profile-modal-backdrop{position:absolute;inset:0;background:rgba(10,22,43,.72)}
.chess-profile-modal-panel{position:relative;z-index:1;width:min(100%,1050px);max-height:min(90vh,950px);overflow-y:auto;overscroll-behavior:contain;background:#fff;border-radius:16px;box-shadow:0 20px 70px rgba(0,0,0,.2);outline:none}
.chess-profile-modal-close{position:sticky;top:14px;float:right;z-index:3;margin:14px 14px -55px 0;width:40px;height:40px;border:0;border-radius:50%;background:#eef1f6;color:#253650;cursor:pointer;font-size:18px}
.chess-profile-modal-layout{display:grid;grid-template-columns:minmax(260px,37%) minmax(0,1fr)}
.chess-profile-modal-photo{background:#e8edf4;min-height:520px}
.chess-profile-modal-details{padding:50px 48px 45px;min-width:0}
.chess-profile-modal-details h2{width:auto!important;height:auto!important;overflow:visible!important;font-size:32px!important;line-height:1.3!important;margin:10px 0 16px!important;color:var(--color-navy,#243f7c)}
.chess-profile-modal-intro{font-size:16px;color:#59677c;line-height:1.8;margin:0 0 25px}
.chess-profile-modal-facts{margin-bottom:22px}
.chess-profile-modal-facts>div{grid-template-columns:90px minmax(0,1fr);font-size:15px}
.chess-profile-modal-content{font-size:16px;line-height:1.85;color:#303b4d;overflow-wrap:anywhere}
.chess-profile-modal-content img{max-width:100%;height:auto}
.chess-profile-modal-content ul,.chess-profile-modal-content ol{padding-left:22px;list-style:revert}
.chess-profile-modal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px;padding-top:23px;border-top:1px solid #e6eaf0}
.chess-profile-modal-actions a{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:10px 17px;border-radius:7px;font-size:14px;font-weight:700;text-decoration:none}
.chess-profile-fide-link{background:var(--color-navy,#243f7c);color:#fff}
.chess-profile-detail-link{border:1px solid #dbe2ec;color:#30415f}
body.chess-profile-modal-open{overflow:hidden}
@media(max-width:1100px){.chess-profile-list #gall_ul.chess-profile-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}}
@media(max-width:800px){.chess-profile-list #gall_ul.chess-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chess-profile-modal-layout{grid-template-columns:1fr}.chess-profile-modal-photo{min-height:0;height:290px}.chess-profile-modal-photo img{object-position:center 25%}.chess-profile-modal-details{padding:30px}}
@media(max-width:520px){.chess-profile-list{padding:0 15px 45px}.chess-profile-heading{margin-bottom:30px}.chess-profile-heading h2{font-size:28px!important}.chess-profile-list #gall_ul.chess-profile-grid{grid-template-columns:1fr;gap:18px}.chess-profile-card{display:grid;grid-template-columns:38% 62%;min-height:220px}.chess-profile-photo{aspect-ratio:auto;height:100%}.chess-profile-info{padding:17px 15px}.chess-profile-info h3{font-size:20px}.chess-profile-intro{font-size:14px;margin-bottom:10px;-webkit-line-clamp:2}.chess-profile-facts{padding-top:10px;margin-bottom:10px}.chess-profile-facts>div{font-size:13px;grid-template-columns:63px minmax(0,1fr);gap:4px;margin-bottom:5px}.chess-profile-more{min-height:39px}.chess-profile-toolbar{align-items:flex-start}.chess-profile-toolbar-actions a{font-size:12px;padding:0 10px}.chess-profile-modal{padding:10px}.chess-profile-modal-panel{max-height:94vh}.chess-profile-modal-photo{height:240px}.chess-profile-modal-details{padding:25px 20px}.chess-profile-modal-details h2{font-size:27px!important}.chess-profile-search select{width:115px}}
@media(prefers-reduced-motion:reduce){.chess-profile-card{transition:none}}

/* 관리자에게만 표시되는 선수별 수정 버튼 */
.chess-profile-edit{display:inline-flex;align-items:center;justify-content:center;gap:7px;align-self:flex-end;margin:0 0 10px;padding:7px 13px;border:1px solid #d7dfeb;border-radius:6px;background:#fff;color:var(--color-navy,#243f7c);font-size:14px;font-weight:700;text-decoration:none;line-height:1.5}
.chess-profile-edit:hover,.chess-profile-edit:focus{background:#edf2f9;color:var(--color-navy,#243f7c);text-decoration:none}

/* 0204 선수 프로필 팝업: 사진/기본정보/하단 버튼 고정, 본문만 스크롤 */
.chess-profile-modal-panel {
    height: min(86vh, 820px);
    max-height: 90vh;
    overflow: hidden;
}
.chess-profile-modal-layout {
    height: 100%;
    min-height: 0;
}
.chess-profile-modal-photo {
    height: 100%;
    min-height: 0;
    overflow: hidden;
}
.chess-profile-modal-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}
.chess-profile-modal-details {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    overflow: hidden;
}
.chess-profile-modal-details > .chess-profile-eyebrow,
.chess-profile-modal-details > h2,
.chess-profile-modal-details > .chess-profile-modal-intro,
.chess-profile-modal-details > .chess-profile-modal-facts,
.chess-profile-modal-details > .chess-profile-modal-actions {
    flex-shrink: 0;
}
.chess-profile-modal-content {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    padding-right: 12px;
    scrollbar-gutter: stable;
}
.chess-profile-modal-actions {
    margin-top: 18px;
    padding-top: 18px;
}
.chess-profile-modal-close {
    position: absolute;
    top: 14px;
    right: 14px;
    float: none;
    margin: 0;
}
@media (max-width: 800px) {
    .chess-profile-modal-panel {
        height: min(92vh, 850px);
        max-height: 94vh;
    }
    .chess-profile-modal-layout {
        display: flex;
        flex-direction: column;
    }
    .chess-profile-modal-photo {
        flex: 0 0 220px;
        height: 220px;
        min-height: 0;
    }
    .chess-profile-modal-details {
        flex: 1 1 auto;
        height: auto;
        min-height: 0;
        padding: 25px;
    }
}
@media (max-width: 520px) {
    .chess-profile-modal-photo {
        flex-basis: 165px;
        height: 165px;
    }
    .chess-profile-modal-details {
        padding: 18px;
    }
    .chess-profile-modal-details h2 {
        margin: 5px 0 10px !important;
    }
    .chess-profile-modal-intro {
        margin-bottom: 12px;
        line-height: 1.6;
    }
    .chess-profile-modal-facts {
        margin-bottom: 12px;
    }
    .chess-profile-modal-actions {
        margin-top: 12px;
        padding-top: 12px;
    }
}

/* 0204 반응형 보완: 좁은 화면에서 카드 내용 줄바꿈 방지 */
@media (max-width: 650px) {
    .chess-profile-list #gall_ul.chess-profile-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
    }
    .chess-profile-list #gall_ul.chess-profile-grid .gall_li { min-width: 0; }
    .chess-profile-card {
        display: flex;
        flex-direction: column;
        min-height: 0;
    }
    .chess-profile-photo {
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
        flex: none;
    }
    .chess-profile-photo img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center 25%;
    }
    .chess-profile-info { padding: 22px 20px; }
    .chess-profile-info h3 { font-size: 22px; }
    .chess-profile-intro { font-size: 15px; -webkit-line-clamp: 3; }
    .chess-profile-facts > div {
        grid-template-columns: 76px minmax(0, 1fr);
        font-size: 14px;
        gap: 10px;
    }
    .chess-profile-facts dd { overflow-wrap: break-word; word-break: keep-all; }
    .chess-profile-more { min-height: 44px; }
}

/* 태블릿/모바일 팝업: 사진 잘림 방지 */
@media (max-width: 800px) {
    .chess-profile-modal-photo {
        flex: 0 0 245px;
        height: 245px;
        min-height: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #eef1f5;
    }
    .chess-profile-modal-photo img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: center center;
    }
}
@media (max-width: 520px) {
    .chess-profile-modal-photo {
        flex-basis: 210px;
        height: 210px;
    }
}

/* 800px 이하: 선수 사진을 기본정보 오른쪽 상단에 배치 */
@media (max-width: 800px) {
  .chess-profile-modal-layout { position:relative; display:block; height:100%; }
  .chess-profile-modal-photo { position:absolute; z-index:1; top:25px; right:25px; width:160px; height:200px; min-height:0; border-radius:10px; overflow:hidden; background:#f0f2f6; display:flex; align-items:center; justify-content:center; }
  .chess-profile-modal-photo img { width:100%; height:100%; object-fit:contain; object-position:center; }
  .chess-profile-modal-details { height:100%; padding:25px; }
  .chess-profile-modal-details > .chess-profile-eyebrow,
  .chess-profile-modal-details > h2,
  .chess-profile-modal-details > .chess-profile-modal-intro { width:calc(100% - 185px); max-width:calc(100% - 185px); }
  .chess-profile-modal-intro { min-height:145px; overflow-wrap:anywhere; word-break:keep-all; }
}
@media (max-width: 520px) {
  .chess-profile-modal-photo { top:18px; right:18px; width:120px; height:150px; }
  .chess-profile-modal-details { padding:18px; }
  .chess-profile-modal-details > .chess-profile-eyebrow,
  .chess-profile-modal-details > h2,
  .chess-profile-modal-details > .chess-profile-modal-intro { width:calc(100% - 132px); max-width:calc(100% - 132px); }
  .chess-profile-modal-intro { min-height:110px; font-size:14px; line-height:1.55; }
}

/* 320~359px 초소형 모바일: 자기소개 독립 스크롤 + 상세내용 공간 확보 */
@media (max-width: 359px) {
  .chess-profile-modal { padding: 8px; }
  .chess-profile-modal-panel { height: 94dvh; max-height: 94dvh; }
  .chess-profile-modal-details { padding: 15px; }
  .chess-profile-modal-photo {
    top: 15px; right: 15px; width: 96px; height: 120px;
  }
  .chess-profile-modal-details > .chess-profile-eyebrow,
  .chess-profile-modal-details > h2 {
    width: calc(100% - 122px);
    max-width: calc(100% - 122px);
  }
  .chess-profile-modal-details > .chess-profile-modal-intro {
    width: 100%; max-width: 100%;
    min-height: 0; max-height: 84px;
    flex: 0 1 auto;
    margin-top: 62px;
    margin-bottom: 10px;
    padding-right: 7px;
    overflow-y: auto; overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    font-size: 14px; line-height: 1.55;
    word-break: keep-all; overflow-wrap: anywhere;
  }
  .chess-profile-modal-facts { margin-bottom: 9px; padding-top: 10px; }
  .chess-profile-modal-facts > div { grid-template-columns: 72px minmax(0,1fr); font-size: 14px; margin-bottom: 5px; }
  .chess-profile-modal-content { flex: 1 1 90px; min-height: 70px; font-size: 14px; line-height: 1.6; }
  .chess-profile-modal-actions { margin-top: 8px; padding-top: 8px; gap: 6px; }
  .chess-profile-modal-actions a { min-height: 40px; padding: 7px 10px; font-size: 13px; }
  .chess-profile-modal-close { top: 9px; right: 9px; }
}
