/* 상남포탈 · 회원 셀프서비스 화면 (11 기능명세). 부품 · 토큰은 sim.css를 그대로 쓰고 여기는 포탈 전용 배치만 둡니다. */
.q[hidden] { display: none; }
.q .skip-note[hidden] { display: none; }
.file-item.skipped form.upload { display: none; }
.file-item .skip-note { color: #555; }
.autosave-bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; align-items: center; margin: 0 0 18px; padding: 10px 14px; border-radius: 8px; background: var(--c-bg-soft); font-size: 14px; color: #555; }
.autosave-bar .warn { color: #b3261e; font-weight: 500; }
.file-item { margin: 0 0 16px; padding: 16px 18px; border: 1px solid #dde3ea; border-radius: var(--radius-box); background: #fff; }
.file-item h3 { margin: 0 0 4px; font-size: 17px; font-weight: 500; color: var(--c-text-strong); }
.file-item.skipped { background: var(--c-bg-soft); color: #666; }
.file-item ul { margin: 8px 0; padding: 0; list-style: none; }
.file-item li { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; padding: 6px 0; border-top: 1px dashed #e3e7ec; font-size: 15px; }
.file-item form.upload { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.file-item form.upload input[type="file"] { max-width: 100%; min-height: 44px; padding: 8px; border: 1px solid var(--c-line-2); border-radius: 5px; background: #fff; font: inherit; font-size: 15px; }
.inline-form { display: inline; }
.link-btn { padding: 0; font: inherit; color: var(--c-link-text); background: none; border: 0; text-decoration: underline; cursor: pointer; }
.link-btn.danger { color: #b3261e; }
.nav-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin: 28px 0; }
.nav-row .right { display: flex; flex-wrap: wrap; gap: 10px; }
.review-sec { margin: 0 0 26px; }
.review-sec h3 { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 0 0 10px; font-size: 19px; font-weight: 500; color: var(--c-title2); }
.review-sec h3 a { font-size: 14px; font-weight: 400; }
.app-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.app-list li { padding: 20px 22px; border: 1px solid #e3e6ea; border-radius: var(--radius-box); background: #fff; }
.app-list .head { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.app-list h3 { margin: 0; font-size: 18px; font-weight: 600; color: var(--c-text-strong); }
.app-list .meta { margin: 6px 0 0; font-size: 14px; color: #666; }
.app-list .next { margin: 10px 0 0; font-size: 15px; }
.steps-mini { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 22px; padding: 0; list-style: none; counter-reset: s; }
.steps-mini li { flex: 1 1 0; min-width: 90px; padding: 10px 8px; border-radius: 8px; background: #eef1f5; color: #667; font-size: 14px; text-align: center; }
.steps-mini li::before { counter-increment: s; content: counter(s) ". "; }
.steps-mini li.done { background: #dbe9fb; color: #0b4a9c; }
.steps-mini li.on { background: var(--c-blue); color: #fff; font-weight: 600; }
.apply-box .demo-badge { margin-left: 6px; vertical-align: middle; }
.apply-box details { margin-top: 12px; border: 1px solid #e3e6ea; border-radius: 8px; background: #fff; }
.apply-box details summary { padding: 10px 14px; cursor: pointer; font-weight: 500; }
.apply-box details form { padding: 0 14px 14px; }
.apply-box details label { display: block; margin: 8px 0 4px; font-size: 14px; font-weight: 500; }
.apply-box details input[type="text"], .apply-box details input[type="email"], .apply-box details input[type="tel"], .apply-box details textarea {
  width: 100%; min-height: 40px; padding: 6px 10px; font: inherit; font-size: 15px; border: 1px solid var(--c-line-2); border-radius: 5px; }
.apply-box details textarea { min-height: 90px; }
.apply-box details .choices { display: flex; gap: 14px; font-size: 14px; }
.apply-box details .agree-line { display: flex; gap: 8px; align-items: flex-start; margin: 10px 0; font-size: 13px; color: #555; }
.verify-result { margin: 24px 0; padding: 22px 24px; border-radius: var(--radius-box); border: 2px solid var(--c-teal); background: #f2fbfb; }
.verify-result.bad { border-color: #c62828; background: #fdf3f2; }
.verify-result.none { border-color: var(--c-line-2); background: var(--c-bg-soft); }
.data-dump { margin: 0 0 22px; }
.data-dump summary { cursor: pointer; padding: 10px 0; font-weight: 500; color: var(--c-title2); }
@media (max-width: 768px) {
  .nav-row, .nav-row .right { flex-direction: column; }
  .nav-row .btn, .nav-row .right .btn { width: 100%; }
  .steps-mini li { min-width: 60px; font-size: 13px; padding: 8px 4px; }
}
@media print { .no-print { display: none !important; } }
.file-item h3.req::after { content: " *"; color: #c62828; }
/* 원서 단계 표시: 모바일은 한 줄 칩으로 (가이드 STEP 상자는 PC에서만 크게) */
@media (max-width: 768px) {
  .steps.steps-form { flex-direction: row; flex-wrap: nowrap; gap: 4px; margin: 16px 0; }
  .steps.steps-form li { flex: 1 1 0; margin: 0 !important; padding: 8px 2px; gap: 2px; min-height: 0; }
  .steps.steps-form li + li::before, .steps.steps-form img { display: none; }
  .steps.steps-form .no { font-size: 11px; }
  .steps.steps-form strong { font-size: 12px; line-height: 1.3; }
}
