/* charact — 프로필 소개 게시판 스킨 (모델/캐릭터/제품 프로필 시트) */

.chr_wrap { max-width:1280px; margin:0 auto; padding:0; color:#1f2937;
    --chr-paper:#faf8f5; --chr-line:#e7e2dc; --chr-ink:#111827; --chr-sub:#6b7280; --chr-accent:#1f3a5f; }
.chr_wrap * { box-sizing:border-box; }

.chr_btn { display:inline-flex; align-items:center; gap:6px; padding:7px 14px; border-radius:8px;
    border:1px solid #d6d0c8; background:#fff; color:#374151; text-decoration:none; font-size:.88em; cursor:pointer; }
.chr_btn:hover { background:#f3f1ee; }
.chr_btn.primary { background:var(--chr-accent); border-color:var(--chr-accent); color:#fff; }
.chr_btn.primary:hover { background:#16293f; }

.chr_chip { display:inline-block; padding:5px 13px; border-radius:20px; border:1px solid var(--chr-line);
    background:#fff; color:#4b5563; font-size:.8em; }
.chr_badge { display:inline-block; padding:3px 10px; border-radius:20px; background:rgba(31,58,95,.9);
    color:#fff; font-size:.72em; font-weight:700; letter-spacing:.02em; }

/* ═══════════ 목록 — 프로필 갤러리 ═══════════ */
.chr_top { display:flex; justify-content:space-between; align-items:flex-end; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.chr_top h2 { margin:0; font-size:1.45em; color:var(--chr-ink); letter-spacing:-.01em; }
.chr_top .eyebrow { display:block; font-size:.56em; letter-spacing:.22em; color:var(--chr-sub); font-weight:600; margin-bottom:6px; }
.chr_top .cnt { font-size:.62em; color:var(--chr-sub); font-weight:400; margin-left:6px; }

.chr_tabs { display:flex; flex-wrap:wrap; gap:6px; padding:10px 12px; background:var(--chr-paper);
    border:1px solid var(--chr-line); border-radius:12px; margin-bottom:18px; }
.chr_tabs a { padding:6px 14px; border-radius:20px; background:#fff; border:1px solid var(--chr-line);
    color:#4b5563; text-decoration:none; font-size:.85em; }
.chr_tabs a:hover { background:#efece7; }
.chr_tabs a.on { background:var(--chr-accent); border-color:var(--chr-accent); color:#fff; font-weight:700; }

.chr_gallery { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:18px; }
.chr_pcard { background:#fff; border:1px solid var(--chr-line); border-radius:14px; overflow:hidden;
    display:flex; flex-direction:column; transition:transform .14s, box-shadow .14s; }
.chr_pcard:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(17,24,39,.12); }
.chr_pcard .shot { display:block; position:relative; aspect-ratio:3/4; background:#e9e5e0; overflow:hidden; }
.chr_pcard .shot img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.chr_pcard:hover .shot img { transform:scale(1.04); }
.chr_pcard .shot .noimg { display:flex; align-items:center; justify-content:center; height:100%; color:#9ca3af; font-size:.85em; }
.chr_pcard .shot .cat { position:absolute; top:10px; left:10px; }
.chr_pcard .info { padding:12px 14px 14px; display:flex; flex-direction:column; gap:6px; flex:1; }
.chr_pcard .nm { font-size:1.08em; font-weight:700; color:var(--chr-ink); line-height:1.25; text-decoration:none; }
.chr_pcard .en { font-size:.76em; color:#9ca3af; letter-spacing:.06em; text-transform:uppercase; margin-top:-3px; }
.chr_pcard .tag { font-size:.83em; color:#4b5563; line-height:1.5;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.chr_pcard .keys { display:flex; flex-wrap:wrap; gap:4px; margin-top:auto; padding-top:6px; }
.chr_pcard .keys span { font-size:.71em; color:#6b7280; background:#f3f1ee; border-radius:12px; padding:3px 9px; }

.chr_empty { text-align:center; padding:70px 20px; color:#9ca3af; background:var(--chr-paper);
    border:1px solid var(--chr-line); border-radius:14px; }
.chr_paging { text-align:center; padding:18px 0; }

/* ═══════════ 상세 — 프로필 시트 ═══════════ */
.chr_view { background:var(--chr-paper); border:1px solid var(--chr-line); border-radius:16px; padding:18px; }

.chr_hero { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:24px;
    background:#fff; border:1px solid var(--chr-line); border-radius:14px; overflow:hidden; margin-bottom:16px; }
.chr_hero .photo { background:#e9e5e0; min-height:340px; }
.chr_hero .photo img { width:100%; height:100%; object-fit:cover; display:block; }
.chr_hero .photo .noimg { display:flex; align-items:center; justify-content:center; height:100%; min-height:340px; color:#9ca3af; }
.chr_hero .side { padding:26px 28px 26px 4px; display:flex; flex-direction:column; }
.chr_hero .eyebrow { font-size:.74em; letter-spacing:.24em; color:var(--chr-sub); font-weight:600; margin-bottom:10px; }
.chr_hero h1 { margin:0; font-size:3em; line-height:1.05; font-family:Georgia,'Nanum Myeongjo',serif;
    font-weight:400; color:#3b332c; letter-spacing:-.01em; }
.chr_hero .en_name { font-size:.85em; color:#9ca3af; letter-spacing:.14em; text-transform:uppercase; margin-top:6px; }
.chr_hero blockquote { margin:14px 0 0; padding:0 0 0 18px; border-left:3px solid #d8d2ca;
    font-size:1.02em; line-height:1.6; color:#4b4239; font-style:italic; }
.chr_hero .divider { height:1px; background:var(--chr-line); margin:18px 0; }

.chr_dl { display:grid; grid-template-columns:auto 1fr; gap:9px 20px; font-size:.9em; align-items:baseline; }
.chr_dl dt { color:#6b7280; font-weight:700; white-space:nowrap; }
.chr_dl dd { margin:0; color:#1f2937; line-height:1.55; white-space:pre-line; }
.chr_dl dd a { color:var(--chr-accent); }

.chr_cols { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:16px; margin-bottom:16px; align-items:start; }
.chr_box { background:#fff; border:1px solid var(--chr-line); border-radius:14px; padding:20px 22px; }
.chr_box h3 { margin:0 0 14px; font-size:.9em; letter-spacing:.14em; color:#3b332c; font-weight:700; text-transform:uppercase; }
.chr_box .about { font-size:.93em; line-height:1.75; color:#4b5563; }
.chr_box .about img { max-width:100%; height:auto; }

.chr_check { list-style:none; margin:0; padding:0; font-size:.9em; }
.chr_check li { padding:6px 0 6px 26px; position:relative; color:#374151; line-height:1.5; }
.chr_check li:before { content:'✓'; position:absolute; left:4px; top:6px; color:#8a9a7b; font-weight:700; }

.chr_chips { display:flex; flex-wrap:wrap; gap:8px; }

.chr_look { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:20px; align-items:start; }
@media (max-width:760px) { .chr_look { grid-template-columns:1fr; } }
.chr_look .strip { display:grid; grid-template-columns:repeat(auto-fill, minmax(84px, 1fr)); gap:8px; }
.chr_look .strip a { display:block; aspect-ratio:3/4; border-radius:8px; overflow:hidden; background:#e9e5e0; }
.chr_look .strip img { width:100%; height:100%; object-fit:cover; display:block; }

.chr_shots { display:grid; grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)); gap:14px; }
.chr_shots figure { margin:0; }
.chr_shots a { display:block; aspect-ratio:3/4; border-radius:10px; overflow:hidden; background:#e9e5e0; cursor:zoom-in; }
.chr_shots img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.chr_shots a:hover img { transform:scale(1.05); }
.chr_shots figcaption { margin-top:7px; text-align:center; font-size:.8em; color:#6b7280; }

.chr_prm { background:#fff; border:1px solid var(--chr-line); border-radius:12px; overflow:hidden; }
.chr_prm_head { display:flex; align-items:center; justify-content:space-between; gap:8px;
    padding:10px 14px; background:#f6f4f1; border-bottom:1px solid var(--chr-line); font-size:.85em; font-weight:700; color:#374151; }
.chr_prm_body { padding:13px 15px; font-family:Consolas,'D2Coding',monospace; font-size:.84em;
    line-height:1.6; color:#1f2937; white-space:pre-wrap; word-break:break-word; max-height:220px; overflow-y:auto; }
.chr_copy { padding:4px 12px; border-radius:6px; background:#111; color:#fff; border:0; cursor:pointer; font-size:.85em; font-weight:600; }
.chr_copy:hover { background:#333; }
.chr_copy.done { background:#10b981; }

.chr_contact { list-style:none; margin:0; padding:0; font-size:.9em; }
.chr_contact li { display:flex; align-items:baseline; gap:10px; padding:7px 0; }
.chr_contact li .ic { width:20px; text-align:center; }
.chr_contact li .lb { color:#6b7280; min-width:64px; }
.chr_contact li a { color:var(--chr-accent); word-break:break-all; }

.chr_v_actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; }
.chr_v_foot { margin-top:14px; }

@media (max-width:860px) {
    .chr_hero { grid-template-columns:1fr; }
    .chr_hero .photo { aspect-ratio:4/3; min-height:0; }
    .chr_hero .photo .noimg { min-height:200px; }
    .chr_hero .side { padding:22px; }
    .chr_hero h1 { font-size:2.2em; }
    .chr_view { padding:12px; }
}

/* 라이트박스 */
.chr_lb { position:fixed; inset:0; background:rgba(17,20,24,.92); display:none; align-items:center;
    justify-content:center; z-index:9999; padding:20px; }
.chr_lb.on { display:flex; }
.chr_lb img { max-width:100%; max-height:92vh; border-radius:8px; }
.chr_lb .x { position:absolute; top:16px; right:20px; background:none; border:0; color:#fff; font-size:2em; cursor:pointer; line-height:1; }

/* ═══════════ 쓰기/수정 ═══════════ */
.chr_w { max-width:960px; margin:0 auto; }
.chr_w h2 { margin:0 0 14px; font-size:1.3em; }
.chr_w .section { background:#fff; border:1px solid var(--chr-line); border-radius:12px; padding:16px 18px; margin-bottom:14px; }
.chr_w .section h3 { margin:0 0 12px; font-size:.98em; color:var(--chr-accent); padding-bottom:7px; border-bottom:1px solid #eceae6; }
.chr_w .row { margin-bottom:12px; }
.chr_w .grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:640px) { .chr_w .grid2 { grid-template-columns:1fr; } }
.chr_w label { display:block; font-weight:600; color:#374151; margin-bottom:5px; font-size:.9em; }
.chr_w label .req { color:#dc2626; margin-left:3px; }
.chr_w label .hint { color:#9ca3af; font-weight:400; font-size:.86em; margin-left:6px; }
.chr_w input[type=text], .chr_w input[type=password], .chr_w select, .chr_w textarea {
    width:100%; padding:9px 11px; border:1px solid #d6d0c8; border-radius:8px; font-size:.92em;
    box-sizing:border-box; font-family:inherit; background:#fff; }
.chr_w textarea { min-height:78px; resize:vertical; line-height:1.6; }
.chr_w textarea.tall { min-height:140px; }
.chr_w textarea.mono { font-family:Consolas,'D2Coding',monospace; font-size:.86em; }
.chr_w .imgt_filled, .chr_w input.imgt_filled, .chr_w textarea.imgt_filled { background:#ecfdf5; border-color:#10b981; }

.chr_drop { border:2px dashed #cfc8bf; border-radius:12px; padding:18px; display:flex; align-items:center;
    gap:14px; background:var(--chr-paper); cursor:pointer; outline:none; }
.chr_drop.over, .chr_drop:focus { border-color:var(--chr-accent); background:#eef2f7; }
.chr_drop.ok { border-color:#10b981; background:#ecfdf5; }
.chr_drop .ic { font-size:1.8em; }
.chr_drop .tx b { display:block; color:#374151; }
.chr_drop .tx span { display:block; font-size:.84em; color:#6b7280; margin-top:2px; }

.chr_slots { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:10px; margin-top:12px; }
.chr_slot { border:1px solid var(--chr-line); border-radius:10px; padding:10px; background:#fff; }
.chr_slot .role { font-size:.78em; font-weight:700; color:#fff; background:#9aa3ae; border-radius:12px;
    padding:2px 9px; display:inline-block; margin-bottom:7px; }
.chr_slot.main .role { background:#b45309; }
.chr_slot.profile .role { background:var(--chr-accent); }
.chr_slot .pv { display:block; width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:6px;
    background:#f1efec; margin-bottom:7px; }
.chr_slot input[type=file] { width:100%; font-size:.78em; }
.chr_slot input[type=text] { margin-top:6px; font-size:.82em; padding:6px 8px; }
.chr_slot .del { font-size:.78em; color:#dc2626; margin-top:6px; display:inline-block; }
.chr_slot .cur { font-size:.78em; color:#2563eb; word-break:break-all; }

.chr_w .btn_confirm { text-align:right; margin-top:16px; }
.chr_w .btn_confirm input[type=submit] { padding:12px 32px; background:var(--chr-accent); color:#fff;
    border:0; border-radius:8px; font-weight:700; cursor:pointer; }
.chr_w .btn_confirm a { margin-left:8px; padding:12px 22px; background:#e9e5e0; color:#374151;
    text-decoration:none; border-radius:8px; }
