/* 지원 현황 · 일정표 · 등록 결정 카드 — 클래스 머리 .ap- (styles.css 의 토큰·부품을 재사용한다. 등장 애니메이션 없음) */
.ap-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ap-name { flex: 1; min-width: 0; font-weight: 700; min-height: 44px; text-align: left; overflow-wrap: anywhere; } /* 긴 학교 이름은 줄을 바꾸고 단계 고르기를 밀어내지 않는다 */
.ap-gap { margin: 10px 0; }
.ap-toggle { margin-top: 10px; min-height: 44px; }
.ap-next { margin-top: 6px; font-size: 0.9rem; overflow-wrap: anywhere; }
.ap-body { margin-top: 8px; }
.ap-h { margin: 16px 0 4px; font-size: 0.95rem; font-weight: 700; }
.ap-h .plan-sub { display: block; font-weight: 400; }
.ap-step { flex-wrap: wrap; }
.ap-step > span { flex: 1; min-width: 0; }
.ap-step-sub { flex: 1 0 100%; padding-left: 30px; font-size: 0.8125rem; color: var(--gray-7); overflow-wrap: anywhere; }
.ap-step-sub b { color: var(--pink-8); }
.ap-facts, .ap-risks, .ap-line { margin: 6px 0 0; padding-left: 18px; font-size: 0.9rem; line-height: 1.55; }
.ap-facts li, .ap-risks li, .ap-line li { margin-bottom: 6px; overflow-wrap: anywhere; }
.ap-basis { font-size: 0.75rem; color: var(--gray-6); }
.ap-rate { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
/* 입력은 한 줄에 하나(라벨 위, 도움말, 칸, 오류 순서) */
.ap-form { display: grid; gap: 12px; margin-top: 10px; }
.ap-field { display: block; }
.ap-field .plan-sub { margin-bottom: 4px; }
.ap-field .btn { margin-top: 6px; }
.ap-check { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; padding: 6px 0; font-size: 0.9rem; cursor: pointer; }
.ap-check input { width: 20px; height: 20px; flex: none; margin-top: 2px; accent-color: var(--pink-8); }
.ap-check small { color: var(--gray-7); }
.ap-btns { display: flex; gap: 6px; margin-top: 12px; flex-wrap: wrap; }
/* 표: 폰 폭에서는 상자 안에서 가로로 넘긴다. 첫 열(학교)은 붙여 둔다 */
.ap-scroll { overflow-x: auto; margin-top: 10px; border: 1px solid var(--gray-2); border-radius: var(--radius-md); -webkit-overflow-scrolling: touch; }
.ap-scroll:focus-visible { outline: 2px solid var(--pink-8); outline-offset: 2px; }
.ap-table { border-collapse: collapse; font-size: 0.8125rem; font-variant-numeric: tabular-nums; }
.ap-table th, .ap-table td { padding: 6px 8px; border-bottom: 1px solid var(--gray-1); text-align: center; vertical-align: top; white-space: nowrap; }
.ap-table tbody th, .ap-table thead th:first-child { position: sticky; left: 0; background: var(--white); text-align: left; font-weight: 600; max-width: 120px; white-space: normal; }
.ap-table thead th { color: var(--gray-7); font-weight: 600; }
.ap-table .ap-now { background: var(--pink-0); }
.ap-wide { width: 100%; }
.ap-wide td { white-space: normal; text-align: left; min-width: 110px; }
/* 예상 날짜는 색이 아니라 점선 테두리로(읽기 프로그램에는 '예상' 글자) */
.ap-mark { display: inline-block; min-width: 22px; padding: 1px 3px; margin: 1px; border: 1.5px solid var(--gray-8); border-radius: var(--radius-sm); font-weight: 700; text-decoration: none; background: var(--white); color: var(--gray-9); }
.ap-mark.ap-est { border-style: dashed; border-color: var(--gray-6); font-weight: 500; }
