/* 지원자는 비교 목록, 선택한 한 사람의 상세, 관리 설정 순으로 읽는다. */
.cm-app.sm-mode { max-width:1240px; }
.sm-mode .cm-page-head p { display:none; }
.sm-root { color:var(--text); }
.sm-button { min-height:44px; border:1px solid var(--border-strong); border-radius:8px; background:white; color:var(--action); font-size:14px; font-weight:700; padding:10px 16px; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; }
.sm-button:hover:not(:disabled) { background:var(--action-tint); }
.sm-button:disabled { cursor:default; color:var(--text-muted); background:var(--bg2); }
.sm-breadcrumb { margin-bottom:16px; }
.sm-breadcrumb .sm-button { border:0; padding-left:0; font-weight:400; color:var(--text-muted); }
.sm-header { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; }
.sm-header > div { min-width:0; }
.sm-header h2 { font-size:28px; line-height:1.4; margin:0; text-align:left; text-wrap:pretty; }
.sm-header p { margin:8px 0 0; font-size:15px; }
.sm-header > button { flex:none; }
.sm-summary { display:flex; flex-wrap:wrap; gap:12px 20px; font-size:14px; margin:20px 0 24px; font-variant-numeric:tabular-nums; }
.sm-summary strong { color:var(--action); }
.sm-summary span { border-left:1px solid var(--border-strong); padding-left:20px; }
.sm-admin-label { font-size:13px; color:var(--text-muted); margin:12px 0 0; }
.sm-tabs { display:flex; border-bottom:1px solid var(--border-strong); gap:28px; margin-bottom:28px; }
.sm-tabs .sm-button { border:0; border-bottom:3px solid transparent; border-radius:0; padding:12px 0; font-size:16px; font-weight:400; color:var(--text-muted); }
.sm-tabs [aria-pressed=true] { border-bottom-color:var(--action); color:var(--action); font-weight:700; }
.sm-workspace { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:28px; align-items:start; }
.sm-master,.sm-detail { min-width:0; }
.sm-section-head { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin:0 0 20px; }
.sm-section-head h2,.sm-person-heading h2 { font-size:21px; margin:0; text-align:left; }
.sm-meta { color:var(--text-muted); font-size:13px; line-height:1.65; margin:8px 0; }
.sm-list-head,.sm-applicant { display:grid; grid-template-columns:minmax(70px,.7fr) minmax(0,2fr) 52px; gap:16px; }
.sm-list-head { border-bottom:1px solid var(--border); padding:12px 16px; color:var(--text-muted); font-size:13px; }
.sm-applicant { width:100%; text-align:left; align-items:center; border:0; border-bottom:1px solid var(--border); background:white; padding:20px 16px; color:var(--text); font-size:14px; position:relative; }
.sm-applicant:hover { background:var(--bg2); }
.sm-applicant.is-selected { background:var(--action-tint); box-shadow:inset 3px 0 var(--action); }
.sm-applicant > strong { font-size:16px; overflow-wrap:anywhere; }
.sm-applicant-info { display:flex; flex-direction:column; gap:6px; line-height:1.6; min-width:0; }
.sm-applicant-info b { font-weight:700; }
.sm-applicant-info small { font-size:12px; color:var(--text-muted); }
.sm-applicant time { font-size:13px; color:var(--text-muted); font-variant-numeric:tabular-nums; }
.sm-list-help { margin-top:20px; }
.sm-detail { border-left:1px solid var(--border); padding-left:28px; scroll-margin-top:80px; }
.sm-person-heading { display:flex; justify-content:space-between; gap:16px; margin-bottom:24px; align-items:flex-start; }
.sm-person-heading .sm-button { display:none; border:0; font-weight:400; padding:8px; }
.sm-person-heading h2:focus { outline:none; }
.sm-facts { margin:0; }
.sm-facts > div { display:grid; grid-template-columns:112px minmax(0,1fr); gap:16px; font-size:14px; line-height:1.7; margin:8px 0; }
.sm-facts dt { color:var(--text-muted); }
.sm-facts dd { margin:0; }
.sm-detail-section,.sm-contact { padding-top:20px; margin-top:24px; border-top:1px solid var(--border); }
.sm-detail-section p { font-size:14px; }
.sm-detail-section .sm-button { padding-left:0; border:0; justify-content:flex-start; }
.sm-copy { white-space:pre-wrap; font-size:15px; line-height:1.8; overflow-wrap:anywhere; }
.sm-decision { display:flex; justify-content:space-between; gap:16px; border-top:1px solid var(--border); padding-top:20px; margin-top:24px; }
.sm-decision [data-action=application-reject] { border-color:transparent; color:var(--text-muted); font-weight:400; }
.sm-member { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; padding:20px 0; border-bottom:1px solid var(--border); }
.sm-member > div:first-child { min-width:0; }
.sm-member h3 { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.sm-owner-label { font-size:12px; color:var(--text-muted); font-weight:400; }
.sm-member-contact { font-size:14px; }
.sm-member-actions { display:flex; flex-wrap:wrap; align-items:flex-start; gap:12px; flex:none; }
.sm-member-actions details { min-width:120px; }
.sm-member-actions summary,.sm-end summary { min-height:44px; padding:12px; cursor:pointer; font-size:14px; }
.sm-member-actions details > div { display:flex; flex-direction:column; gap:8px; }
.sm-setting-actions { display:flex; flex-wrap:wrap; gap:12px; margin:24px 0; }
.sm-settings,.sm-guide { max-width:760px; }
.sm-guide h3 { margin-top:28px; }
.sm-end { border-top:1px solid var(--border); padding-top:16px; margin-top:36px; }
.sm-end p { font-size:14px; }
.sm-empty { padding:40px 0; }
.sm-empty p { color:var(--text-muted); font-size:14px; }
.sm-admin-search { display:flex; gap:12px; margin:24px 0; align-items:end; }
.sm-admin-search label { display:flex; flex-direction:column; gap:8px; font-size:14px; flex:1; }
.sm-admin-search input,.sm-admin-search select { width:100%; min-height:44px; border:1px solid var(--border-strong); border-radius:8px; padding:10px 12px; font-size:16px; background:white; color:var(--text); }
@media(max-width:900px) {
 .sm-workspace { gap:20px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .sm-detail { padding-left:20px; }
 .sm-list-head,.sm-applicant { grid-template-columns:minmax(60px,.6fr) minmax(0,1.8fr); gap:12px; }
 .sm-list-head span:last-child { display:none; }
 .sm-applicant time { grid-column:2; }
 .sm-facts > div { grid-template-columns:88px minmax(0,1fr); gap:12px; }
}
@media(max-width:700px) {
 .sm-mode .cm-page-head { padding-bottom:0; }
 .sm-header { gap:12px; flex-wrap:wrap; }
 .sm-header h2 { font-size:24px; }
 .sm-header p { font-size:14px; }
 .sm-header > button { font-size:13px; padding:8px 12px; }
 .sm-summary { gap:8px 12px; font-size:13px; }
 .sm-summary span { padding-left:12px; }
 .sm-tabs { gap:0; justify-content:space-between; margin-bottom:24px; }
 .sm-tabs .sm-button { font-size:14px; min-width:48px; }
 .sm-workspace { display:block; }
 .sm-list-head,.sm-applicant { grid-template-columns:68px minmax(0,1fr); }
 .sm-list-head,.sm-applicant { padding-left:12px; padding-right:12px; }
 .sm-detail { display:none; border:0; padding:0; }
 .sm-workspace.has-detail .sm-master { display:none; }
 .sm-workspace.has-detail .sm-detail { display:block; }
 .sm-applicant.is-selected { box-shadow:none; background:white; }
 .sm-person-heading { flex-direction:column-reverse; gap:16px; }
 .sm-person-heading .sm-button { display:inline-flex; padding-left:0; }
 .sm-member { flex-direction:column; gap:8px; }
 .sm-member-actions { width:100%; }
 .sm-admin-search { flex-wrap:wrap; }
 .sm-admin-search label:first-child { flex-basis:100%; }
 .sm-mode .cm-main { padding-bottom:40px; }
}
/* 모바일 지원자 상세: 핵심 요약 → 지원 이유 → 선택 이력 → 연락·처리. */
.sm-mobile-detail { display:none; }
@media(max-width:700px) {
 .sm-root { scroll-margin-top:72px; }
 .sm-mode:has(.sm-detail-active) .cm-page-head,
 .sm-detail-active > .sm-breadcrumb,.sm-detail-active > .sm-header,
 .sm-detail-active > .sm-admin-label,.sm-detail-active > .sm-summary,
 .sm-detail-active > .sm-tabs { display:none; }
 .sm-desktop-detail { display:none; }
 .sm-mobile-detail { display:block; }
 .sm-mobile-top { display:flex; justify-content:space-between; align-items:center; }
 .sm-mobile-top .sm-button { border:0; padding:8px 0; font-weight:400; }
 .sm-mobile-top > span { font-size:12px; color:var(--text-muted); }
 .sm-study-context { margin:8px 0 20px; font-size:13px; color:var(--text-muted); overflow-wrap:anywhere; }
 .sm-mobile-name { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
 .sm-mobile-name h2 { margin:0; font-size:24px; overflow-wrap:anywhere; }
 .sm-mobile-name h2:focus { outline:none; }
 .sm-mobile-name > span { flex:none; font-size:12px; color:var(--text-muted); }
 .sm-mobile-goal { font-size:16px; font-weight:700; margin:12px 0 8px; }
 .sm-skill-lines { display:flex; flex-wrap:wrap; gap:4px 12px; font-size:14px; line-height:1.6; }
 .sm-skill-lines span { white-space:nowrap; }
 .sm-proof-summary { display:flex; flex-wrap:wrap; gap:6px; margin:14px 0 0; }
 .sm-proof-summary span { font-size:12px; color:var(--action); background:var(--action-tint); border-radius:4px; padding:4px 8px; }
 .sm-mobile-application .sm-facts > div { grid-template-columns:64px minmax(0,1fr); gap:12px; margin:6px 0; }
 .sm-mobile-reason { border-top:1px solid var(--border); margin-top:20px; padding-top:20px; }
 .sm-mobile-detail h3 { font-size:15px; margin:0 0 8px; }
 .sm-mobile-detail .sm-copy { font-size:15px; line-height:1.7; margin:0; word-break:keep-all; overflow-wrap:anywhere; }
 .sm-mobile-more { margin-top:8px; }
 .sm-mobile-more summary { padding:12px 0 0; min-height:48px; font-size:14px; color:var(--action); cursor:pointer; }
 .sm-mobile-more > div { padding:0 0 16px; }
 .sm-mobile-more .sm-button { padding-left:0; border:0; }
 .sm-mobile-detail .sm-contact { border:0; padding-top:0; margin-top:0; }
 .sm-mobile-private .sm-contact h3 { display:none; }
 .sm-mobile-detail .sm-contact .sm-meta { font-size:12px; margin:4px 0 10px; }
 .sm-mobile-detail .sm-contact .sm-facts > div { grid-template-columns:64px minmax(0,1fr); margin:4px 0; }
 .sm-mobile-detail .sm-decision { padding-top:0; border:0; margin-top:20px; }
 .sm-mobile-detail .sm-decision .sm-button { flex:1; }
 .sm-mobile-detail { padding-bottom:16px; }
 .sm-mobile-profile,.sm-mobile-application,.sm-mobile-private { padding:24px 0; margin:0; border:0; border-radius:0; }
 .sm-mobile-profile { padding-top:8px; }
 .sm-mobile-application,.sm-mobile-private { border-top:1px solid var(--border-strong); }
 .sm-mobile-profile { background:var(--surface); }
 .sm-mobile-application { background:var(--surface); }
 .sm-mobile-application > h3 { margin-bottom:16px; font-size:17px; }
 .sm-mobile-application .sm-mobile-reason { margin-top:16px; padding-top:16px; }
 .sm-mobile-application .sm-mobile-reason h3 { font-size:13px; color:var(--text-muted); font-weight:400; }
 .sm-mobile-private { background:transparent; }
 .sm-private-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
 .sm-private-heading h3 { margin:0; font-size:17px; }
 .sm-private-heading > span { font-size:12px; color:var(--text-muted); }
 .sm-mobile-name { flex-wrap:wrap; gap:4px 12px; }
 .sm-mobile-private .sm-decision { border-top:1px solid var(--border); padding-top:16px; margin-top:16px; }
 .sm-mobile-private .sm-decision [data-action=application-reject] { background:transparent; }

}
/* 읽는 순서: 사람과 적합성 → 지원 맥락 → 연락 및 결정. */
@media(max-width:700px) {
 .sm-study-context { margin:0 0 20px; font-size:12px; }
 .sm-mobile-profile { padding:0 0 24px; }
 .sm-mobile-name h2 { font-size:28px; font-weight:800; }
 .sm-mobile-goal { font-size:15px; font-weight:400; margin:6px 0 12px; }
 .sm-proof-summary { margin:0 0 24px; }
 .sm-fit { margin:0; display:grid; gap:16px; }
 .sm-fit > div { margin:0; }
 .sm-fit dt { font-size:12px; color:var(--text-muted); margin-bottom:6px; }
 .sm-fit dt span { margin-left:6px; font-size:12px; }
 .sm-fit dd { margin:0; font-size:15px; line-height:1.6; }
 .sm-fit .sm-skill-lines { gap:4px 14px; }
 .sm-mobile-application,.sm-mobile-private { border-top:1px solid var(--border); padding:24px 0; }
 .sm-mobile-application > h3 { font-size:15px; margin:0 0 8px; }
 .sm-improve { margin:0; font-size:15px; line-height:1.7; word-break:keep-all; overflow-wrap:anywhere; }
 .sm-mobile-application > .sm-reason-title { margin-top:24px; }
 .sm-mobile-more { margin-top:16px; }
 .sm-mobile-more summary { font-size:13px; padding:12px 0; }
 .sm-mobile-more > div { padding:8px 0; }
 .sm-private-heading { margin-bottom:4px; }
 .sm-private-heading h3 { font-size:15px; }
 .sm-mobile-private > .sm-meta { margin:0 0 12px; font-size:12px; }
 .sm-contact-inline { display:flex; flex-wrap:wrap; gap:8px 16px; font-size:15px; margin:0; }
 .sm-contact-inline strong { font-weight:400; }
 .sm-mobile-private .sm-decision { border:0; margin-top:20px; padding-top:0; }
 .sm-mobile-private .sm-decision [data-action=application-accept] { flex:2; }
}
/* 운영 목록은 상태와 제목을 붙이고 인원·관리 동작을 같은 행에 정렬한다. */
.sm-admin-row { display:grid; grid-template-columns:minmax(0,1fr) 160px 128px; gap:24px; align-items:center; padding:24px 0; border-bottom:1px solid var(--border); }
.sm-admin-row:first-child { border-top:1px solid var(--border-strong); }
.sm-row-main { min-width:0; }
.sm-row-title { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.sm-row-title h3 { margin:0; min-width:0; }
.sm-row-title h3 .cm-btn-ghost { padding:0; border:0; min-height:44px; font-size:18px; text-align:left; background:none; }
.sm-row-number { font-size:13px; color:var(--text-muted); font-variant-numeric:tabular-nums; }
.sm-row-status { display:inline-flex; font-size:12px; font-weight:700; padding:4px 8px; border-radius:4px; background:var(--bg2); color:var(--text-muted); }
.sm-row-status.is-open { background:var(--action-tint); color:var(--action); }
.sm-row-schedule { font-size:14px; margin:8px 0; line-height:1.6; }
.sm-row-counts { display:flex; gap:24px; margin:0; }
.sm-row-counts dt { font-size:12px; color:var(--text-muted); margin-bottom:8px; }
.sm-row-counts dd { font-size:20px; font-weight:700; margin:0; font-variant-numeric:tabular-nums; }
.sm-row-counts dd span { font-size:13px; font-weight:400; color:var(--text-muted); }
.sm-row-counts .has-pending { color:var(--action); }
.sm-row-actions { display:flex; flex-direction:column; gap:8px; }
.sm-row-actions .cm-btn-ghost,.sm-row-actions .sm-button { font-size:13px; min-height:44px; margin:0; }
.sm-row-actions .sm-button { border-color:transparent; font-weight:400; }
@media(max-width:700px) {
 .sm-admin-row { grid-template-columns:minmax(0,1fr); gap:16px; padding:24px 0; }
 .sm-row-title h3 { flex-basis:100%; }
 .sm-row-title { gap:6px 10px; }
 .sm-row-title h3 .cm-btn-ghost { font-size:18px; }
 .sm-row-main .sm-meta { margin-bottom:0; }
 .sm-row-counts { gap:32px; }
 .sm-row-counts > div { display:flex; align-items:baseline; gap:10px; }
 .sm-row-counts dt { margin:0; }
 .sm-row-counts dd { font-size:18px; }
 .sm-row-actions { flex-direction:row; }
 .sm-row-actions > * { flex:1; }
}
