.prm-modal,
.prm-application,
.prm-addr,
.prm-page-footer {
  --prm-accent: #1a50d8;
  --prm-accent-deep: #1244c5;
  --prm-navy: #152037;
  --prm-ink: #202a3c;
  --prm-muted: #64748b;
  --prm-border: #dce2eb;
  --prm-soft: #f6f8fc;
  --prm-surface: #ffffff;
}

.prm-modal-open { overflow: hidden; }

.prm-page-footer {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 99990;
  padding: 10px 12px max(10px, env(safe-area-inset-bottom));
  background-color: var(--prm-accent);
  box-shadow: 0 -8px 24px rgba(15, 23, 42, .18);
  text-align: center;
}

.prm-page-footer button {
  min-height: 44px;
  padding: 8px 18px;
  border: 1px solid #fff;
  border-radius: 999px;
  background: transparent;
  color: #fff;
  font-weight: 700;
}

.prm-page-footer .dashicons { margin-right: 6px; vertical-align: middle; }

.prm-modal[hidden] { display: none; }
.prm-modal { position: fixed; inset: 0; z-index: 999999; display: grid; place-items: center; padding: 16px; }
.prm-modal__backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, .65); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); opacity: 0; transition: opacity .18s ease; }
.prm-is-open .prm-modal__backdrop { opacity: 1; }
.prm-modal__panel { position: relative; z-index: 1; width: min(560px, calc(100% - 24px)); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow: auto; box-sizing: border-box; padding: 20px 22px max(20px, env(safe-area-inset-bottom)); border-radius: 26px; background: var(--prm-surface); color: var(--prm-ink); box-shadow: 0 20px 50px rgba(15, 23, 42, .22); animation: prm-desktop-in .18s ease-out; }
.prm-modal[data-prm-state="confirm"] > .prm-modal__panel, .prm-modal[data-prm-state="loading"] > .prm-modal__panel, .prm-modal[data-prm-state="success"] > .prm-modal__panel { visibility: hidden; pointer-events: none; }
.prm-modal__close { position: absolute; top: 18px; right: 18px; display: grid; place-items: center; width: 42px; height: 42px; border: 0; border-radius: 50%; background: #f3f5f9; color: #5b6472; font-size: 24px; line-height: 1; }
.prm-modal__panel h2:not(.prm-sr-only) { margin: 0 44px 10px 0; color: var(--prm-navy); font-size: 1.3rem; font-weight: 800; line-height: 1.25; }
.prm-is-closing .prm-modal__panel { animation: prm-desktop-out .18s ease-in forwards; }
.prm-is-closing .prm-modal__backdrop { opacity: 0; }

.prm-ic { flex: 0 0 auto; width: 20px; height: 20px; }
.prm-ic--lock { width: 15px; height: 15px; }
.prm-ic--chevron { width: 16px; height: 16px; }

.prm-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 13px; }
.prm-section { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; min-width: 0; }
.prm-section-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 0; padding-bottom: 6px; border-bottom: 1px solid #eef1f6; color: var(--prm-navy); font-size: 1rem; font-weight: 700; }
.prm-section-title .prm-ic { align-self: center; color: var(--prm-accent); }
.prm-form .prm-section-hint { display: inline; margin: 0; color: var(--prm-muted); font-size: .78rem; font-weight: 400; }
.prm-field { min-width: 0; margin: 0; }
.prm-field-label, .prm-form label { display: block; margin-bottom: 4px; color: var(--prm-ink); font-weight: 600; }
.prm-field--required > .prm-field-label::after, .prm-field--required > .prm-field-head > .prm-field-label::after { display: inline-block; width: 5px; height: 5px; margin-left: 6px; border-radius: 50%; background: var(--prm-accent); vertical-align: 3px; content: ""; }
.prm-field-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px; margin-bottom: 4px; }
.prm-field-head .prm-field-label { margin-bottom: 0; }
.prm-field-head .prm-field-hint { display: inline; margin: 0; color: var(--prm-muted); font-weight: 400; font-size: .8125rem; }
.prm-field-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.prm-form input[type="text"], .prm-form input[type="tel"], .prm-form input[type="number"], .prm-form select, .prm-form textarea { width: 100%; min-height: 46px; box-sizing: border-box; padding: 8px 14px; border: 1.5px solid var(--prm-border); border-radius: 12px; background: #fff; color: var(--prm-ink); font-size: 16px; }
.prm-oneform--ready select { padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23768195' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.5l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 13px center; background-size: 17px; appearance: none; -webkit-appearance: none; }
.prm-form textarea { min-height: 96px; resize: vertical; }
.prm-form input:hover, .prm-form select:hover, .prm-form textarea:hover { border-color: #aeb9ca; }
.prm-form input:focus, .prm-form select:focus, .prm-form textarea:focus { border-color: var(--prm-accent); }
.prm-form fieldset { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; border: 0; }
.prm-form fieldset label { margin: 0; font-weight: 400; }
.prm-form small { display: block; margin-top: 4px; color: var(--prm-muted); font-size: .875rem; }
.prm-field-error { display: block; min-height: 0; margin-top: 0; color: #b42318; font-size: .875rem; }
.prm-field-error:not(:empty) { min-height: 1.2em; margin-top: 6px; }
.prm-error-summary { margin: 0; padding: 12px 14px; border-radius: 12px; background: #fff1f2; color: #b42318; }
.prm-error-summary[hidden] { display: none; }

.prm-residence-trigger { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 46px; box-sizing: border-box; padding: 8px 12px 8px 14px; border: 1.5px solid var(--prm-border); border-radius: 12px; background: #fff; color: var(--prm-muted); font-size: 16px; text-align: left; cursor: pointer; }
.prm-residence-trigger:hover, .prm-residence-trigger:focus, .prm-residence-trigger:active { border-color: #aeb9ca; background: #fff; color: var(--prm-muted); }
.prm-residence-trigger--set, .prm-residence-trigger--set:hover, .prm-residence-trigger--set:focus, .prm-residence-trigger--set:active { color: var(--prm-ink); }
.prm-residence-trigger .prm-ic { color: var(--prm-muted); }
.prm-residence-trigger__value { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prm-oneform--ready .prm-residence-js { display: none; }

.prm-consent-card { position: relative; display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; box-sizing: border-box; padding: 9px 10px; border: 1.5px solid var(--prm-border); border-radius: 14px; background: #fff; }
.prm-form .prm-consent-main { display: flex; flex: 1 1 auto; align-items: center; gap: 7px; min-width: 0; margin: 0; font-weight: 400; cursor: pointer; }
.prm-form .prm-consent-main input { flex: 0 0 auto; width: 20px; height: 20px; margin: 0; accent-color: var(--prm-accent); }
.prm-consent-text { min-width: 0; color: var(--prm-ink); font-weight: 700; font-size: .82rem; line-height: 1.35; }
.prm-consent-badge { display: inline-block; margin-left: 5px; padding: 1px 6px; border-radius: 999px; background: #e9effc; color: var(--prm-accent); font-size: .68rem; font-weight: 700; vertical-align: 1px; }
.prm-consent-view { position: relative; z-index: 1; display: inline-flex; flex: 0 0 auto; align-items: center; gap: 1px; margin: 0 0 0 auto; padding: 2px 0; border: 0; background: transparent; color: var(--prm-ink); font-size: .76rem; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; cursor: pointer; }
.prm-consent-view:hover, .prm-consent-view:focus, .prm-consent-view:active { background: transparent; color: var(--prm-ink); }
.prm-consent-view[hidden] { display: none; }
/* The link stays visually small but keeps a full-size tap target of its own. */
.prm-consent-view::after { position: absolute; inset: -11px -4px; content: ""; }
.prm-consent-view .prm-ic { width: 13px; height: 13px; }
.prm-privacy-notice { padding: 12px 14px; border: 1px solid #dbeafe; border-radius: 12px; background: var(--prm-soft); }
.prm-privacy-notice summary { cursor: pointer; font-weight: 700; }
.prm-oneform--ready .prm-privacy-notice > summary { display: none; }
.prm-oneform--ready .prm-privacy-notice:not([open]) { display: none; }

.prm-submit-area { display: grid; gap: 8px; }
.prm-submit { min-height: 50px; border: 0; border-radius: 14px; background: var(--prm-accent); color: #fff; font-weight: 800; font-size: 1rem; }
.prm-modal .prm-submit:hover, .prm-modal .prm-submit:focus, .prm-modal .prm-submit:active, .prm-application .prm-submit:hover, .prm-application .prm-submit:focus, .prm-application .prm-submit:active { background: var(--prm-accent-deep); color: #fff; }
.prm-modal .prm-submit--idle, .prm-modal .prm-submit--idle:hover, .prm-modal .prm-submit--idle:focus, .prm-modal .prm-submit--idle:active, .prm-application .prm-submit--idle, .prm-application .prm-submit--idle:hover, .prm-application .prm-submit--idle:focus, .prm-application .prm-submit--idle:active { background: #c6cedb; color: #fff; }
.prm-submit[disabled] { background: #c6cedb; color: #fff; }
.prm-safe-note { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 0; color: var(--prm-muted); font-size: .78rem; }
.prm-form--obscured { visibility: hidden; pointer-events: none; }

.prm-addr[hidden] { display: none; }
.prm-addr { position: fixed; inset: 0; z-index: 1000001; display: grid; place-items: center; padding: 16px; }
.prm-addr__backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, .55); }
.prm-addr__panel { position: relative; z-index: 1; display: grid; grid-template-rows: auto auto auto auto minmax(0, 1fr); width: min(560px, calc(100% - 24px)); height: min(620px, calc(100dvh - 40px)); box-sizing: border-box; padding: 22px 22px max(22px, env(safe-area-inset-bottom)); border-radius: 24px; background: #fff; color: var(--prm-ink); box-shadow: 0 20px 50px rgba(15, 23, 42, .25); outline: none; }
.prm-addr__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.prm-addr__title { margin: 0; color: var(--prm-navy); font-size: 1.125rem; font-weight: 800; }
.prm-addr__close { display: grid; place-items: center; width: 38px; height: 38px; border: 0; border-radius: 50%; background: #f3f5f9; color: #5b6472; cursor: pointer; }
.prm-addr__close:hover, .prm-addr__close:focus, .prm-addr__close:active { background: #f3f5f9; color: #5b6472; }
.prm-addr__steps { display: flex; align-items: center; justify-content: center; margin: 0 0 14px; padding: 0 26px; list-style: none; }
.prm-addr__dot { position: relative; flex: 1; display: grid; justify-items: center; min-width: 0; }
.prm-addr__dot span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #e4e9f1; color: #97a2b4; font-size: .8125rem; font-weight: 700; }
.prm-addr__dot::before { position: absolute; top: 13px; right: 50%; left: -50%; z-index: -1; height: 2px; background: #e4e9f1; content: ""; }
.prm-addr__dot:first-child::before { display: none; }
/* 세종특별자치시처럼 시·군·구가 없는 지역은 가운데 동그라미만 감춥니다.
   자리와 연결선은 그대로 두어 진행 표시의 폭과 위치가 다른 지역과 같습니다. */
.prm-addr__dot--skip > span { visibility: hidden; }
.prm-addr__dot--now span, .prm-addr__dot--done span { background: var(--prm-accent); color: #fff; }
.prm-addr__dot--now::before, .prm-addr__dot--done::before { background: var(--prm-accent); }
.prm-addr__crumb { display: inline-flex; align-items: center; gap: 6px; justify-self: start; margin: 0 0 6px; padding: 5px 6px 5px 0; border: 0; background: transparent; color: var(--prm-ink); font-size: .9375rem; font-weight: 700; cursor: pointer; }
.prm-addr__crumb:hover, .prm-addr__crumb:focus, .prm-addr__crumb:active { background: transparent; color: var(--prm-ink); }
.prm-addr__crumb .prm-ic { width: 17px; height: 17px; }
.prm-addr__crumb[hidden] { display: none; }
.prm-addr__guide { margin: 0 0 12px; color: var(--prm-muted); font-size: .9375rem; }
.prm-addr__guide[hidden] { display: none; }
.prm-addr__list { display: grid; gap: 10px; align-content: start; margin: 0; padding: 2px; overflow-y: auto; list-style: none; }
.prm-addr__list[hidden] { display: none; }
.prm-addr__row { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 54px; box-sizing: border-box; padding: 10px 14px 10px 16px; border: 1.5px solid #e4e9f1; border-radius: 12px; background: #fff; color: var(--prm-ink); font-size: 1rem; text-align: left; cursor: pointer; }
.prm-addr__row:hover, .prm-addr__row:focus { border-color: #aeb9ca; background: #fff; color: var(--prm-ink); }
.prm-addr__row:active { background: #fff; color: var(--prm-ink); }
.prm-addr__row .prm-ic { color: #97a2b4; }
.prm-addr__row--on, .prm-addr__row--on:hover, .prm-addr__row--on:focus, .prm-addr__row--on:active { border-color: var(--prm-accent); background: #f0f5ff; color: var(--prm-ink); font-weight: 700; }
.prm-addr__row--on .prm-ic { color: var(--prm-accent); }
.prm-addr__done { display: grid; gap: 8px; align-content: center; justify-items: center; min-height: 0; overflow-y: auto; text-align: center; }
.prm-addr__done[hidden] { display: none; }
.prm-addr__done-icon { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 6px; border-radius: 50%; background: #e8f0fe; color: var(--prm-accent); }
.prm-addr__done-icon .prm-ic { width: 30px; height: 30px; }
.prm-addr__done-title { margin: 0; color: var(--prm-navy); font-size: 1.125rem; font-weight: 800; }
.prm-addr__done-desc { margin: 0; color: var(--prm-muted); font-size: .9rem; }
.prm-addr__result { width: 100%; box-sizing: border-box; margin-top: 10px; padding: 15px; border-radius: 12px; background: var(--prm-soft); color: var(--prm-ink); font-weight: 700; }
.prm-addr__confirm { width: 100%; min-height: 54px; margin-top: 12px; border: 0; border-radius: 14px; background: var(--prm-accent); color: #fff; font-size: 1rem; font-weight: 800; cursor: pointer; }
.prm-addr__confirm:hover, .prm-addr__confirm:focus, .prm-addr__confirm:active { background: var(--prm-accent-deep); color: #fff; }

.prm-flow-layer { position: fixed; top: 50%; left: 50%; z-index: 5; display: grid; gap: 14px; width: min(420px, calc(100% - 28px)); max-height: calc(100dvh - 40px); overflow: auto; box-sizing: border-box; padding: 22px; border-radius: 18px; background: #fff; color: var(--prm-ink); box-shadow: 0 18px 48px rgba(15, 23, 42, .3); text-align: center; transform: translate(-50%, -50%); }
.prm-flow-layer h3 { margin: 0; }
.prm-flow-layer p { margin: 0; color: var(--prm-muted); }
.prm-confirmation__preview { display: grid; gap: 10px; margin: 0; text-align: left; }
.prm-confirmation__preview div { display: grid; gap: 2px; }
.prm-confirmation__preview dt { font-weight: 700; }
.prm-confirmation__preview dd { margin: 0; overflow-wrap: anywhere; }
.prm-flow-layer button { min-height: 46px; border-radius: 10px; font-weight: 700; }
.prm-flow-layer button:first-of-type:not(:last-of-type) { border: 1px solid #fda4af; background: #fff; color: #be123c; }
.prm-flow-layer button:last-of-type { border: 0; background: #172033; color: #fff; }
.prm-page-footer button, .prm-modal__close, .prm-submit, .prm-flow-layer button, .prm-residence-trigger, .prm-addr__row, .prm-addr__confirm { cursor: pointer; }
.prm-sr-only, .prm-form .screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.prm-modal__close, .prm-open-modal, .prm-submit, .prm-residence-trigger, .prm-addr__row, .prm-addr__confirm, .prm-consent-view { -webkit-tap-highlight-color: transparent; }
.prm-modal .prm-modal__close:hover, .prm-modal .prm-modal__close:focus, .prm-modal .prm-modal__close:active { background: #f3f5f9; color: #5b6472; }
.prm-flow-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.prm-confirming > :not(.prm-confirmation) { display: none; }
.prm-spinner { width: 34px; height: 34px; margin: auto; border: 4px solid #bfdbfe; border-top-color: var(--prm-accent); border-radius: 50%; animation: prm-spin .8s linear infinite; }
.prm-confirmation { display: grid; gap: 12px; margin-top: 16px; padding: 16px; border: 1px solid var(--prm-border); border-radius: 12px; background: var(--prm-soft); }
.prm-status--success { color: #166534; }
.prm-status--error { color: #b42318; }
.prm-applicant-page__profile { max-width: 680px; margin: 20px auto; padding: 20px; border: 1px solid var(--prm-border); border-radius: 14px; background: var(--prm-surface); color: var(--prm-ink); }
.prm-applicant-page__profile dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 10px .35em; margin: 0; }
.prm-applicant-page__profile dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.prm-applicant-profile-form { display: grid; gap: 14px; }
.prm-applicant-profile-form p { margin: 0; }
.prm-applicant-profile-form label, .prm-applicant-profile-form legend { display: block; margin-bottom: 6px; font-weight: 700; }
.prm-applicant-profile-form input, .prm-applicant-profile-form select { width: 100%; min-height: 44px; box-sizing: border-box; padding: 9px 10px; border: 1px solid var(--prm-border); border-radius: 8px; background: #fff; color: var(--prm-ink); }
.prm-applicant-profile-form fieldset { display: grid; gap: 8px; margin: 0; padding: 12px; border: 1px solid var(--prm-border); border-radius: 10px; }
.prm-profile-error { min-height: 1.2em; color: #b42318; }
.prm-modal :focus-visible, .prm-page-footer :focus-visible, .prm-addr :focus-visible { outline: 3px solid #93c5fd; outline-offset: 2px; }

@keyframes prm-spin { to { transform: rotate(360deg); } }
@keyframes prm-desktop-in { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes prm-desktop-out { to { opacity: 0; transform: translateY(12px) scale(.98); } }
@keyframes prm-up { from { transform: translateY(16px); } to { transform: none; } }
@keyframes prm-down { to { transform: translateY(100%); } }

@media (max-width: 767px) {
  .prm-modal { place-items: end center; padding: 0 0 0; }
  .prm-modal__panel { width: 100%; max-height: 94vh; max-height: min(94dvh, calc(100dvh - 10px)); padding: 16px 14px max(12px, env(safe-area-inset-bottom)); border-radius: 24px 24px 0 0; animation: prm-up .2s ease-out; }
  .prm-is-closing .prm-modal__panel { animation: prm-down .18s ease-in forwards; }
  .prm-modal__close { top: 12px; right: 12px; }
  .prm-form { gap: 12px; }
  .prm-addr { place-items: end center; padding: 0; }
  .prm-addr__panel { width: 100%; height: min(86dvh, calc(100dvh - 24px)); border-radius: 24px 24px 0 0; padding: 20px 16px max(18px, env(safe-area-inset-bottom)); }
  .prm-applicant-page__profile { margin: 14px 0; padding: 16px; }
}
@media (max-width: 340px) { .prm-field-duo { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .prm-modal, .prm-modal *, .prm-addr, .prm-addr *, .prm-page-footer, .prm-page-footer * { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
@media print { .prm-modal, .prm-page-footer { display: none !important; } }

.prm-applicant-page { max-width: 720px; margin: 32px auto; padding: 0 18px; color: #171717; }
.prm-applicant-page__status, .prm-applicant-page__training { margin-bottom: 18px; padding: 24px; border: 1px solid #ececec; border-radius: 20px; background: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.07); }
.prm-applicant-page__training h2 { margin: 0 0 12px; line-height: 1.35; }
.prm-applicant-page__status { display: flex; justify-content: space-between; gap: 16px; }
.prm-applicant-page select { display: block; width: 100%; margin-top: 8px; padding: 12px; border: 1px solid #d6d6d6; border-radius: 10px; background: #fff; }
.prm-applicant-page button { width: 100%; margin-top: 10px; padding: 14px 18px; border: 0; border-radius: 12px; background: #d32f62; color: #fff; font-weight: 700; cursor: pointer; }
.prm-applicant-page__profile { margin-bottom: 18px; padding: 24px; border: 1px solid #ececec; border-radius: 20px; background: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.07); }
.prm-applicant-page__profile h2 { margin: 0 0 12px; line-height: 1.35; }
.prm-applicant-page--virtual { background: #F2F1E6; color: #394250; }
.prm-applicant-page--virtual .prm-applicant-page__status, .prm-applicant-page--virtual .prm-applicant-page__training, .prm-applicant-page--virtual .prm-applicant-page__profile { border-color: #394250; background: #fff; color: #394250; }
.prm-applicant-page--virtual select, .prm-applicant-page--virtual .prm-applicant-profile-form input, .prm-applicant-page--virtual .prm-applicant-profile-form select, .prm-applicant-page--virtual .prm-applicant-profile-form fieldset { border-color: #394250; color: #394250; }
.prm-applicant-page--virtual button, .prm-applicant-page--virtual .prm-applicant-page__profile-edit-link, .prm-applicant-page--virtual .prm-guide-notice-link { display: block; width: 100%; box-sizing: border-box; min-height: 44px; margin-top: 10px; padding: 12px 18px; border: 1px solid #009FDE; border-radius: 12px; background: #009FDE; color: #fff; font-size: 19px; font-weight: 700; line-height: 1.35; text-align: center; text-decoration: none; cursor: pointer; }
.prm-applicant-page--virtual button:hover, .prm-applicant-page--virtual .prm-applicant-page__profile-edit-link:hover { border-color: #0089C0; background: #0089C0; color: #fff; }
.prm-applicant-page--virtual button:focus-visible, .prm-applicant-page--virtual .prm-applicant-page__profile-edit-link:focus-visible, .prm-applicant-page--virtual select:focus-visible, .prm-applicant-page--virtual .prm-applicant-profile-form input:focus-visible { outline: 3px solid #394250; outline-offset: 3px; }
@media (max-width: 767px) { .prm-applicant-page--virtual .prm-applicant-page__profile-edit-link { width: 100%; } }
.prm-applicant-page--virtual-document { margin: 0; background: #F2F1E6; color: #394250; }
.prm-applicant-page--virtual-document .prm-applicant-page__header { position:fixed; z-index:30; top:0; right:0; left:0; display:flex; align-items:center; gap:10px; box-sizing:border-box; min-height:calc(60px + env(safe-area-inset-top)); padding:env(safe-area-inset-top) 16px 0; background:#fff; color:#394250; box-shadow:0 2px 10px rgba(0,0,0,.12); }
.prm-applicant-page--virtual-document .prm-applicant-page__header h1 { min-width:0; margin:0; overflow:hidden; color:#005f85; font-size:18px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.prm-applicant-page--virtual-document .prm-applicant-page__header-logo { display:block; width:auto; max-width:104px; max-height:36px; object-fit:contain; }
.prm-applicant-page--virtual-document .prm-applicant-page__header-brand { flex:0 0 auto; font-size:14px; font-weight:700; white-space:nowrap; }
.prm-applicant-page--virtual { padding-top:calc(60px + env(safe-area-inset-top)); }
.prm-guide-app { padding-bottom: calc(56px + env(safe-area-inset-bottom)); }
.prm-guide-page { display:block; }.prm-guide-ready .prm-guide-page { display:none; }.prm-guide-ready .prm-guide-page.is-active { display:block; }
.prm-guide-frame { display:block; width:100%; min-height:420px; height:70vh; height:70dvh; border:0; background:#fff; }
.prm-guide-bottom-nav { position:fixed; z-index:20; right:0; bottom:0; left:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:4px; padding:8px 6px calc(8px + env(safe-area-inset-bottom)); border-top:1px solid #dbe3ea; background:#fff; box-shadow:0 -3px 12px rgba(0,0,0,.12); }
.prm-guide-nav-button { display:flex!important; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-width:0!important; min-height:52px!important; margin:0!important; padding:6px 2px!important; border:0!important; border-radius:12px!important; background:transparent!important; color:#64748b!important; font-size:12px!important; font-weight:700!important; line-height:1.2!important; overflow-wrap:anywhere; word-break:keep-all; }.prm-guide-nav-icon { display:block; width:22px; height:22px; fill:currentColor; }.prm-guide-nav-label { display:block; }.prm-guide-nav-button.is-active { background:#005f85!important; color:#fff!important; box-shadow:0 4px 10px rgba(0,95,133,.35); }.prm-guide-nav-button.is-active .prm-guide-nav-label { font-weight:800!important; }.prm-guide-nav-button.is-active .prm-guide-nav-icon { transform:scale(1.08); }.prm-guide-nav-button:hover, .prm-guide-nav-button:focus { color:#005f85!important; }.prm-guide-nav-button.is-active:hover, .prm-guide-nav-button.is-active:focus { color:#fff!important; }
.prm-guide-progress,.prm-guide-proof,.prm-guide-page details,.prm-guide-block { margin:0 0 14px; padding:16px; border:1px solid #ccd7df; border-radius:14px; background:#fff; }.prm-guide-progress ol { display:grid; grid-template-columns:repeat(4,1fr); gap:4px; margin:0; padding:0; list-style:none; }.prm-guide-progress li { padding:7px 3px; border-radius:8px; background:#eee; font-size:12px; text-align:center; }.prm-guide-progress li.is-complete { background:#009fde; color:#fff; }.prm-guide-block--emphasis,.prm-guide-block--message { border-left:5px solid #daa520; }.prm-guide-page img { max-width:100%; height:auto; border-radius:10px; }.prm-guide-spacer { height:24px; }
.prm-applicant-page--virtual .prm-guide-progress ol { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; }.prm-applicant-page--virtual .prm-guide-progress li { position:relative; display:grid; justify-items:center; gap:5px; min-width:0; padding:0 3px; border-radius:0; background:transparent; color:#64748b; font-size:12px; line-height:1.3; text-align:center; overflow-wrap:anywhere; }.prm-applicant-page--virtual .prm-guide-progress li::before { position:absolute; top:8px; right:50%; left:-50%; height:2px; background:#ccd7df; content:""; }.prm-applicant-page--virtual .prm-guide-progress li:first-child::before { display:none; }.prm-applicant-page--virtual .prm-guide-progress li > span:first-child { position:relative; z-index:1; display:block; width:16px; height:16px; box-sizing:border-box; border:3px solid #94a3b8; border-radius:50%; background:#fff; }.prm-applicant-page--virtual .prm-guide-progress li.is-complete,.prm-applicant-page--virtual .prm-guide-progress li.is-current { color:#005f85; font-weight:700; }.prm-applicant-page--virtual .prm-guide-progress li.is-complete::before,.prm-applicant-page--virtual .prm-guide-progress li.is-current::before { background:#009fde; }.prm-applicant-page--virtual .prm-guide-progress li.is-complete > span:first-child { border-color:#009fde; background:#009fde; }.prm-applicant-page--virtual .prm-guide-progress li.is-current > span:first-child { border-color:#005f85; box-shadow:0 0 0 3px #bfe9f8; }.prm-applicant-page--virtual .prm-guide-progress__current { margin-top:16px; padding:12px; border-radius:10px; background:#edf9fd; color:#394250; }.prm-applicant-page--virtual .prm-guide-progress__current-label { display:block; margin-bottom:3px; color:#005f85; font-size:12px; font-weight:700; }.prm-applicant-page--virtual .prm-guide-progress__current p { margin:5px 0 0; }
.prm-guide-lightbox { position:fixed; z-index:9999; inset:0; display:grid; place-items:center; padding:5vw; background:rgba(0,0,0,.8); }.prm-guide-lightbox[hidden] { display:none; }.prm-guide-lightbox img { display:block; max-width:100%; max-height:85vh; margin:1rem auto; }.prm-guide-lightbox__close { position:absolute; top:max(12px, env(safe-area-inset-top)); right:12px; min-width:44px; min-height:44px; margin:0; padding:8px 12px; border:1px solid #fff; border-radius:8px; background:#002f56; color:#fff; font:inherit; cursor:pointer; }.prm-guide-lightbox__close:focus-visible { outline:3px solid #fff; outline-offset:3px; }.prm-guide-nav-button:focus-visible { outline:3px solid #005f85; outline-offset:-3px; }.prm-guide-nav-button.is-active:focus-visible { outline-color:#fff; }
@media (max-width: 360px) { .prm-guide-nav-button { font-size:11px!important; letter-spacing:-.04em; } }
@media (max-width: 767px) { .prm-guide-frame { min-height:380px; height:64vh; height:64dvh; } .prm-applicant-page--virtual .prm-guide-app.prm-guide-ready .prm-guide-page.is-active .prm-guide-frame { position:fixed; z-index:10; top:calc(60px + env(safe-area-inset-top)); right:0; bottom:auto; left:0; width:100%; min-height:0; height:calc(100vh - 116px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); height:calc(100dvh - 116px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); border:0; } }
@media (prefers-reduced-motion: reduce) { .prm-guide-page,.prm-guide-nav-button { transition:none!important; } }
.prm-venue { margin-top:20px; padding-top:16px; border-top:1px solid #e2e4e7; }
.prm-venue__heading { margin:0 0 10px; font-size:1.05em; }
.prm-venue__map { margin:0 0 12px; }
.prm-venue__map-image { display:block; width:100%; height:auto; max-width:100%; border-radius:10px; }
.prm-venue__name { margin:0 0 4px; }
.prm-venue__address { margin:0 0 4px; word-break:keep-all; }
.prm-venue__note { margin:0 0 10px; color:#50575e; font-size:.95em; }
.prm-venue .prm-venue__directions { display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%; box-sizing:border-box; min-height:52px; padding:14px 18px; border:0; border-radius:10px; background:#1f4fd8; color:#fff; font-size:17px; font-weight:700; line-height:1.2; cursor:pointer; text-decoration:none; }
.prm-venue .prm-venue__directions:hover, .prm-venue .prm-venue__directions:focus { background:#1740b4; color:#fff; }
.prm-venue__directions-icon { display:inline-flex; width:22px; height:22px; }
.prm-venue__directions-icon svg { width:100%; height:100%; fill:currentColor; }
.prm-venue__actions { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:10px; align-items:stretch; margin:14px 0 0; }
.prm-venue__actions > * { min-width:0; margin:0; }
.prm-venue__actions > form { display:flex; }
.prm-applicant-page .prm-venue__actions button { width:100%; box-sizing:border-box; margin:0; padding-right:12px; padding-left:12px; font-size:17px; }
.prm-venue .prm-venue__actions .prm-venue__directions { width:100%; min-width:0; margin:0; }
@media (max-width:359px) { .prm-venue__actions { grid-auto-flow:row; } }
.prm-applicant-page__training .prm-training-day { margin:0 0 2px; }
.prm-applicant-page__training .prm-training-time { margin:0 0 10px; color:#50575e; }
.prm-training-modal__backdrop, .prm-training-modal__grip, .prm-training-modal .prm-training-modal__close { display:none; }
.prm-training-modal--ready[hidden] { display:none; }
.prm-training-modal--ready { position:fixed; inset:0; z-index:100000; display:flex; align-items:flex-end; justify-content:center; }
.prm-training-modal--ready .prm-training-modal__backdrop { display:block; position:absolute; inset:0; background:rgba(0,0,0,.55); }
.prm-training-modal--ready .prm-training-modal__panel { position:relative; width:100%; max-width:460px; box-sizing:border-box; background:#fff; border-radius:18px 18px 0 0; padding:10px 20px calc(20px + env(safe-area-inset-bottom)); max-height:88vh; overflow-y:auto; }
.prm-training-modal--ready .prm-training-modal__grip { display:block; width:44px; height:5px; margin:0 auto 14px; border-radius:3px; background:#d5d7db; }
.prm-training-modal--ready .prm-training-modal__title { margin:0 0 14px; font-size:19px; font-weight:700; text-align:center; }
.prm-training-modal--ready .prm-training-modal__close { display:block; width:100%; box-sizing:border-box; margin-top:18px; min-height:50px; padding:13px; border:0; border-radius:10px; background:#f1f3f5; color:#1f2328; font-size:16px; font-weight:700; cursor:pointer; }
.prm-training-modal--ready .prm-training-modal__close:hover, .prm-training-modal--ready .prm-training-modal__close:focus { background:#e4e7eb; color:#1f2328; }
@media (min-width:600px) { .prm-training-modal--ready { align-items:center; } .prm-training-modal--ready .prm-training-modal__panel { border-radius:16px; } }
.prm-profile-modal__backdrop, .prm-profile-modal__grip, .prm-profile-modal .prm-profile-modal__x { display:none; }
.prm-profile-modal--ready[hidden] { display:none; }
.prm-profile-modal--ready { position:fixed; inset:0; z-index:100000; display:flex; align-items:flex-end; justify-content:center; }
.prm-profile-modal--ready .prm-profile-modal__backdrop { display:block; position:absolute; inset:0; background:rgba(0,0,0,.55); }
.prm-profile-modal--ready .prm-profile-modal__panel { position:relative; width:100%; max-width:460px; box-sizing:border-box; background:#fff; border-radius:18px 18px 0 0; padding:10px 20px calc(20px + env(safe-area-inset-bottom)); max-height:88vh; overflow-y:auto; }
.prm-profile-modal--ready .prm-profile-modal__grip { display:block; width:44px; height:5px; margin:0 auto 14px; border-radius:3px; background:#d5d7db; }
.prm-profile-modal__head { position:relative; display:flex; flex-wrap:wrap; align-items:baseline; gap:6px; margin:0 0 14px; padding-right:40px; }
.prm-profile-modal__icon { display:inline-flex; width:20px; height:20px; color:#005f85; }
.prm-profile-modal__icon svg { width:100%; height:100%; fill:currentColor; }
.prm-profile-modal--ready .prm-profile-modal__title { margin:0; font-size:18px; font-weight:700; text-align:left; }
.prm-profile-modal__hint { color:#6b7280; font-size:13px; font-weight:400; }
.prm-profile-modal--ready .prm-profile-modal__x { display:flex; position:absolute; top:2px; right:0; align-items:center; justify-content:center; width:34px; height:34px; padding:0; border:0; border-radius:50%; background:#eef1f5; color:#5b6473; cursor:pointer; }
.prm-profile-modal--ready .prm-profile-modal__x svg { width:18px; height:18px; fill:currentColor; }
.prm-profile-modal--ready .prm-profile-modal__x:hover, .prm-profile-modal--ready .prm-profile-modal__x:focus { background:#e0e5ec; color:#1f2328; }
@media (min-width:600px) { .prm-profile-modal--ready { align-items:center; } .prm-profile-modal--ready .prm-profile-modal__panel { border-radius:16px; } }
.prm-applicant-profile-form { display:grid; grid-template-columns:minmax(0,1fr); gap:13px; }
.prm-profile-field { min-width:0; margin:0; }
.prm-profile-duo { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.prm-applicant-profile-form .prm-profile-label { display:block; margin:0 0 4px; color:#1f2328; font-size:14px; font-weight:600; }
.prm-profile-lock { margin-left:6px; padding:1px 7px; border-radius:999px; background:#eef1f5; color:#6b7280; font-size:11px; font-weight:700; vertical-align:1px; }
.prm-applicant-page .prm-applicant-profile-form .prm-profile-input { width:100%; min-height:46px; box-sizing:border-box; margin:0; padding:8px 12px; border:1.5px solid #d7dde5; border-radius:12px; background:#fff; color:#1f2328; font-size:16px; font-weight:400; text-align:left; }
.prm-applicant-page .prm-applicant-profile-form .prm-profile-input:focus { border-color:#009FDE; outline:none; }
.prm-applicant-page .prm-applicant-profile-form .prm-profile-input--locked { border-color:#e5e9ef; background:#f4f6f9; color:#5b6473; }
.prm-applicant-profile-form .prm-profile-help { display:block; margin:6px 0 0; color:#6b7280; font-size:13px; }
.prm-applicant-profile-form .prm-residence-trigger:not([hidden]) + .prm-residence-js { display:none; }
/* The applicant page paints every button sky blue, which is more specific than the address sheet's own
   single-class rules. Restore the sheet's look inside that page, hover states included. */
.prm-applicant-page .prm-addr__close, .prm-applicant-page .prm-addr__close:hover, .prm-applicant-page .prm-addr__close:focus, .prm-applicant-page .prm-addr__close:active { display:grid; place-items:center; width:38px; height:38px; min-height:0; margin:0; padding:0; border:0; border-radius:50%; background:#f3f5f9; color:#5b6472; font-size:1rem; font-weight:400; }
.prm-applicant-page .prm-addr__crumb, .prm-applicant-page .prm-addr__crumb:hover, .prm-applicant-page .prm-addr__crumb:focus, .prm-applicant-page .prm-addr__crumb:active { display:inline-flex; align-items:center; gap:6px; justify-self:start; width:auto; min-height:0; margin:0 0 6px; padding:5px 6px 5px 0; border:0; border-radius:0; background:transparent; color:#1f2328; font-size:.9375rem; font-weight:700; }
.prm-applicant-page .prm-addr__row, .prm-applicant-page .prm-addr__row:hover, .prm-applicant-page .prm-addr__row:focus, .prm-applicant-page .prm-addr__row:active { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; min-height:54px; box-sizing:border-box; margin:0; padding:10px 14px 10px 16px; border:1.5px solid #e4e9f1; border-radius:12px; background:#fff; color:var(--prm-ink); font-size:1rem; font-weight:400; line-height:1.35; text-align:left; }
.prm-applicant-page .prm-addr__row:hover, .prm-applicant-page .prm-addr__row:focus { border-color:#aeb9ca; }
.prm-applicant-page .prm-addr__row--on, .prm-applicant-page .prm-addr__row--on:hover, .prm-applicant-page .prm-addr__row--on:focus, .prm-applicant-page .prm-addr__row--on:active { border-color:var(--prm-accent); background:#f0f5ff; color:var(--prm-ink); font-weight:700; }
.prm-applicant-page .prm-addr__confirm, .prm-applicant-page .prm-addr__confirm:hover, .prm-applicant-page .prm-addr__confirm:focus, .prm-applicant-page .prm-addr__confirm:active { display:block; width:100%; min-height:54px; margin-top:12px; padding:14px; border:0; border-radius:14px; background:var(--prm-accent); color:#fff; font-size:1rem; font-weight:800; }
.prm-applicant-page .prm-addr__title { font-size:1.125rem; font-weight:800; white-space:nowrap; }
.prm-applicant-page .prm-addr__crumb[hidden] { display:none; }
.prm-applicant-page .prm-applicant-profile-form .prm-residence-trigger { min-height:46px; margin:0; padding:8px 12px; border:1.5px solid #d7dde5; border-radius:12px; background:#fff; color:#8a93a2; font-size:16px; font-weight:400; }
.prm-applicant-page .prm-applicant-profile-form .prm-residence-trigger--set { color:#1f2328; }
.prm-applicant-profile-form .prm-residence-col { display:block; margin-top:8px; }
.prm-applicant-profile-form .prm-residence-col label { display:block; margin:0 0 4px; color:#6b7280; font-size:13px; }
.prm-applicant-profile-form .prm-field-error { display:block; margin:0; color:#b42318; font-size:13px; }
.prm-applicant-profile-form .prm-field-error:empty { display:none; }
.prm-applicant-profile-form .prm-profile-error { margin:0; color:#b42318; font-size:14px; }
.prm-applicant-profile-form .prm-profile-error:empty { display:none; }
.prm-applicant-page .prm-applicant-profile-form .prm-profile-save { width:100%; min-height:52px; margin:2px 0 0; padding:14px; border:0; border-radius:12px; background:#009FDE; color:#fff; font-size:17px; font-weight:700; cursor:pointer; }
.prm-applicant-page .prm-applicant-profile-form .prm-profile-save:hover, .prm-applicant-page .prm-applicant-profile-form .prm-profile-save:focus { background:#0089C0; color:#fff; }
.prm-venue-modal[hidden] { display:none; }
.prm-venue-modal { position:fixed; inset:0; z-index:100000; display:flex; align-items:flex-end; justify-content:center; }
.prm-venue-modal__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.55); }
.prm-venue-modal__panel { position:relative; width:100%; max-width:460px; box-sizing:border-box; background:#fff; border-radius:18px 18px 0 0; padding:10px 20px calc(20px + env(safe-area-inset-bottom)); max-height:88vh; overflow-y:auto; }
.prm-venue-modal__grip { width:44px; height:5px; margin:0 auto 14px; border-radius:3px; background:#d5d7db; }
.prm-venue-modal .prm-venue-modal__title { margin:0 0 4px; font-size:19px; font-weight:700; text-align:center; }
.prm-venue-modal__dest { margin:0 0 16px; font-size:14px; color:#50575e; text-align:center; word-break:keep-all; }
.prm-venue-modal__group-label { margin:16px 0 8px; font-size:13px; font-weight:700; color:#6b7280; letter-spacing:.02em; }
.prm-venue-modal__links { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0; }
.prm-venue-modal .prm-app { display:flex; align-items:center; gap:10px; min-height:58px; padding:10px 12px; border-radius:12px; border:1px solid #e5e7eb; background:#fff; color:#1f2328; font-size:15px; font-weight:700; line-height:1.2; text-decoration:none; box-shadow:0 1px 2px rgba(0,0,0,.06); }
.prm-venue-modal .prm-app:hover, .prm-venue-modal .prm-app:focus { color:#1f2328; box-shadow:0 2px 8px rgba(0,0,0,.14); }
.prm-app__icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; width:36px; height:36px; border-radius:10px; }
.prm-app__icon svg { width:20px; height:20px; }
.prm-app__label { word-break:keep-all; }
.prm-app--naver .prm-app__icon { background:#03c75a; }
.prm-app--naver .prm-app__icon svg { fill:#fff; }
.prm-app--kakaomap .prm-app__icon { background:#fee500; }
.prm-app--kakaomap .prm-app__icon svg { fill:#3c1e1e; }
.prm-app--tmap .prm-app__icon { background:#12b2b2; }
.prm-app--tmap .prm-app__icon svg { fill:#fff; }
.prm-app--kakaonavi .prm-app__icon { background:#0a68ff; }
.prm-app--kakaonavi .prm-app__icon svg { fill:#fff; }
.prm-venue-modal__hint { margin:12px 0 0; font-size:13px; color:#6b7280; }
.prm-venue-modal .prm-venue-modal__close { display:block; width:100%; box-sizing:border-box; margin-top:18px; min-height:50px; padding:13px; border:0; border-radius:10px; background:#f1f3f5; color:#1f2328; font-size:16px; font-weight:700; cursor:pointer; }
.prm-venue-modal .prm-venue-modal__close:hover, .prm-venue-modal .prm-venue-modal__close:focus { background:#e4e7eb; color:#1f2328; }
@media (min-width:600px) { .prm-venue-modal { align-items:center; } .prm-venue-modal__panel { border-radius:16px; } .prm-venue .prm-venue__directions { width:auto; min-width:220px; } }
.prm-guide-notice-body p { margin:0 0 10px; }.prm-guide-notice-body p:last-child { margin-bottom:0; }.prm-guide-notice-hint { margin:8px 0 0; color:#4b5b66; font-size:13px; text-align:center; }.prm-guide-notice-done { margin:10px 0 0; padding:12px; border:1px solid #009FDE; border-radius:12px; background:#f2fbff; color:#00506f; font-weight:700; text-align:center; }
