*,
*::before,
*::after{
	box-sizing:border-box;
	margin:0;
	padding:0;
}

html,body{
	width:100%;
	height:100%;
}

body {
	-webkit-tap-highlight-color: transparent;
	font-family: 'Noto Sans KR', sans-serif;
}

img{
	max-width:100%;
	display:block;
}

button,input,textarea,select{
	font-family:inherit;
	border:0;
	background:none;
	outline:none;
}

a{
	text-decoration:none;
	color:inherit;
}

ul,ol{
	list-style:none;
}

.container {
	width:100%;
	max-width:1080px;
	margin:0 auto;
}

.imagemap{
	position:relative;
	width:100%;
}

.link01 {
    position: absolute;
    top: 92%;
    left: 3%;
    width: 50%;
    height: 6%;
    cursor: pointer;
}

.link02 {
    position: absolute;
    top: 92%;
    left: 54%;
    width: 45%;
    height: 6%;
    cursor: pointer;
}

.registration {
	position: absolute;
    top: 88%;
    left: 50%;
    transform: translateX(-50%);
    width: 51%;
    height: 10%;
    cursor: pointer;
}

#program_select {
}

/* 사전신청 페이지 */
.registration-page {
	background:#fff;
	color:#3c3c3c;
}

.registration-wrap {
	padding:40px 36px 64px;
}

.registration-form {
	width:100%;
}

.form-card {
	border:2px solid #3b82f6;
	border-radius:26px;
	padding:34px 36px;
	background:#f5f9ff;
	box-shadow:4px 5px 0 rgba(37, 99, 235, .22);
}

.applicant-card {
	margin-bottom:28px;
}

.section-title-row {
	margin-bottom:26px;
}

.eyebrow {
	font-size:18px;
	font-weight:800;
	letter-spacing:.04em;
	color:#2563eb;
	margin-bottom:6px;
}

.section-title-row h1 {
	font-size:38px;
	line-height:1.25;
	font-weight:800;
	color:#1e3a8a;
}

.section-desc {
	font-size:20px;
	line-height:1.45;
	margin-top:8px;
	color:#555;
}

.error-box {
	border:2px solid #e07171;
	border-radius:16px;
	background:#fff6f6;
	color:#8d1e1e;
	padding:18px 20px;
	margin-bottom:24px;
	font-size:17px;
	line-height:1.6;
}

.error-box strong {
	display:block;
	margin-bottom:4px;
}

.error-box ul {
	padding-left:18px;
	list-style:disc;
}

.form-grid {
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:18px 20px;
}

.field-full {
	grid-column:1 / -1;
}

.choice-card-grid {
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:12px;
}

.affiliation-grid {
	grid-template-columns:repeat(4, minmax(0, 1fr));
}

.industry-grid {
	grid-template-columns:1fr;
}

.partner-grid {
	grid-template-columns:repeat(2, minmax(0, 1fr));
}

.choice-card {
	display:flex;
	align-items:center;
	gap:10px;
	min-height:54px;
	padding:12px 14px;
	border:2px solid #bfdbfe;
	border-radius:14px;
	background:#fff;
	color:#2563eb;
	font-size:17px;
	line-height:1.35;
	font-weight:700;
	cursor:pointer;
	transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.choice-card span {
	color:#2563eb;
}

.choice-card:hover,
.choice-card:focus-within {
	border-color:#2563eb;
	box-shadow:0 0 0 4px rgba(37, 99, 235, .08);
}

.choice-card input[type="radio"],
.choice-card input[type="checkbox"] {
	-webkit-appearance:auto;
	appearance:auto;
	width:22px;
	height:22px;
	padding:0;
	border:0;
	border-radius:0;
	background:transparent;
	box-shadow:none;
	accent-color:#2563eb;
	flex:0 0 auto;
}

.choice-card input[type="radio"]:checked + span,
.choice-card input[type="checkbox"]:checked + span {
	color:#2563eb;
	font-weight:800;
}

.conditional-panel,
.conditional-field,
.nested-check-panel {
	display:none;
}

.conditional-panel.is-active,
.conditional-field.is-active,
.nested-check-panel.is-active {
	display:block;
}

.conditional-panel {
	grid-column:1 / -1;
	padding:20px;
	border:1px solid #93c5fd;
	border-radius:18px;
	background:#eff6ff;
}

.nested-check-panel {
	margin-top:16px;
	padding:18px;
	border:1px dashed #60a5fa;
	border-radius:16px;
	background:#f8fbff;
}

.panel-title-row {
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:12px;
	margin-bottom:14px;
	color:#1e3a8a;
}

.panel-title-row strong {
	font-size:19px;
	line-height:1.35;
	font-weight:800;
}

.panel-title-row span {
	font-size:14px;
	line-height:1.45;
	font-weight:700;
	color:#475569;
	text-align:right;
}

.panel-title-row.small strong {
	font-size:17px;
}

.field-hint {
	margin-top:7px;
	font-size:14px;
	line-height:1.45;
	color:#64748b;
	font-weight:600;
}

.applicant-notice {
	display:flex;
	align-items:center;
	gap:18px;
	padding:18px 20px;
	border:2px solid #93c5fd;
	border-radius:20px;
	background:#dff4ff;
	color:#1e3a8a;
	font-size:19px;
	line-height:1.45;
	font-weight:700;
}

.notice-bubble {
	position:relative;
	width:58px;
	height:46px;
	border:3px solid #2563eb;
	border-radius:50%;
	flex:0 0 auto;
}

.notice-bubble::before,
.notice-bubble::after {
	content:"";
	position:absolute;
	left:15px;
	right:15px;
	height:3px;
	border-radius:999px;
	background:#2563eb;
}

.notice-bubble::before {
	top:15px;
}

.notice-bubble::after {
	top:25px;
}

.notice-bubble span {
	display:none;
}

.notice-bubble::marker {
	display:none;
}

.common-note-box {
	margin-top:24px;
	padding:20px 22px;
	border-radius:18px;
	background:#eff6ff;
	border:1px solid #93c5fd;
}

.common-note-check {
	display:flex;
	align-items:center;
	gap:10px;
	font-size:18px;
	font-weight:800;
	color:#1e3a8a;
	cursor:pointer;
}

.common-note-check input {
	width:22px;
	height:22px;
	accent-color:#2563eb;
	flex:0 0 auto;
}

.common-note-field {
	display:none;
	margin-top:14px;
}

.common-note-field.is-open {
	display:block;
}

.common-note-field label {
	display:block;
	font-size:18px;
	font-weight:800;
	color:#2563eb;
	margin-bottom:8px;
}

.common-note-field textarea {
	width:100%;
	min-height:120px;
	padding:14px 16px;
	border:2px solid #bfdbfe;
	border-radius:14px;
	background:#fff;
	font-size:18px;
	line-height:1.5;
	color:#333;
	resize:vertical;
	transition:border-color .2s ease, box-shadow .2s ease;
}

.common-note-field textarea:focus {
	border-color:#2563eb;
	box-shadow:0 0 0 4px rgba(37, 99, 235, .12);
}

.field label {
	display:block;
	font-size:18px;
	font-weight:800;
	color:#2563eb;
	margin-bottom:8px;
}

.field > label span,
.field > label [data-organization-label-text] {
	color:#2563eb;
}

.field > label span[aria-hidden="true"] {
	color:#d72727;
}

.field input,
.field select,
.special-note textarea {
	width:100%;
	border:2px solid #bfdbfe;
	border-radius:14px;
	background:#fff;
	font-size:19px;
	line-height:1.4;
	color:#333;
	transition:border-color .2s ease, box-shadow .2s ease;
}

.field input,
.field select {
	height:58px;
	padding:0 16px;
}

.field input:focus,
.field select:focus,
.special-note textarea:focus {
	border-color:#2563eb;
	box-shadow:0 0 0 4px rgba(37, 99, 235, .12);
}

.privacy-box {
	margin-top:24px;
	padding:20px 22px;
	border-radius:18px;
	background:#eff6ff;
	border:1px solid #93c5fd;
}

.privacy-text {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	margin-bottom:14px;
	font-size:20px;
	font-weight:800;
	color:#1e3a8a;
}

.privacy-open {
	border:2px solid #1d4ed8;
	border-radius:999px;
	padding:8px 18px;
	background:#fff;
	color:#2563eb;
	font-size:16px;
	font-weight:800;
	cursor:pointer;
}

.agree-check {
	display:flex;
	align-items:center;
	gap:10px;
	font-size:18px;
	font-weight:700;
	cursor:pointer;
}

.agree-check input {
	width:22px;
	height:22px;
	accent-color:#2563eb;
	flex:0 0 auto;
}

.program-block {
	margin-bottom:28px;
}

.program-image {
	width:100%;
	height:auto;
	margin-bottom:26px;
}

.attendance-card {
	border:2px solid #3b82f6;
	border-radius:28px;
	background:#dbeafe;
	padding:26px 34px 22px;
	box-shadow:4px 5px 0 rgba(37, 99, 235, .22);
}

.attendance-head {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	margin-bottom:22px;
	color:#2563eb;
}

.attendance-head strong {
	display:flex;
	align-items:center;
	gap:8px;
	font-size:28px;
	line-height:1.25;
	font-weight:800;
	white-space:nowrap;
}

.attendance-head em {
	font-style:normal;
	font-weight:700;
}

.attendance-head > span {
	display:inline-block;
	background:#fff;
	padding:5px 10px;
	font-size:19px;
	line-height:1.25;
	font-weight:800;
	white-space:nowrap;
}

.title-icon,
.choice-icon {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border-radius:50%;
	font-weight:800;
	line-height:1;
	flex:0 0 auto;
}

.title-icon {
	width:27px;
	height:27px;
	background:#2563eb;
	color:#fff;
	font-size:18px;
}

.attendance-buttons {
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:24px;
	align-items:center;
}

.blind,
.blind-input {
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0, 0, 0, 0);
	white-space:nowrap;
	border:0;
}

.attendance-choice,
.special-toggle {
	display:flex;
	align-items:center;
	justify-content:center;
	gap:12px;
	min-height:74px;
	border:2px solid #93c5fd;
	border-radius:14px;
	background:#fff;
	box-shadow:4px 5px 0 rgba(30, 64, 175, .38);
	color:#2563eb;
	font-size:29px;
	line-height:1.2;
	font-weight:800;
	cursor:pointer;
	transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
	text-align:center;
}

.attendance-choice:hover,
.special-toggle:hover,
.attendance-choice:focus-visible,
.special-toggle:focus-visible {
	border-color:#2563eb;
	transform:translateY(-1px);
}

.blind-input:checked + .attendance-choice {
	background:#2563eb;
	border-color:#2563eb;
	color:#fff;
}

.choice-icon {
	width:34px;
	height:34px;
	background:#2563eb;
	color:#fff;
	font-size:23px;
}

.blind-input:checked + .attendance-choice .choice-icon {
	background:#fff;
	color:#2563eb;
}

.special-note {
	display:none;
	margin-top:22px;
	padding:20px;
	border-radius:18px;
	background:#f8fbff;
	border:1px solid #93c5fd;
}

.special-note.is-open {
	display:block;
}

.special-note label {
	display:block;
	font-size:18px;
	font-weight:800;
	color:#2563eb;
	margin-bottom:8px;
}

.special-note textarea {
	min-height:120px;
	padding:14px 16px;
	resize:vertical;
}

.submit-area {
	padding:18px 0 10px;
	text-align:center;
}

.submit-button {
    position: absolute;
    opacity: 0;
    top: 80%;
    left: 50%;
    width: 60%;
    height: 12%;
    cursor: pointer;
    transform: translateX(-50%);
}

.privacy-modal {
	display:none;
	position:fixed;
	inset:0;
	z-index:1000;
	align-items:center;
	justify-content:center;
	padding:28px;
	background:rgba(0, 0, 0, .48);
}

.privacy-modal.is-open {
	display:flex;
}

.modal-open {
	overflow:hidden;
}

.privacy-modal-panel {
	position:relative;
	width:min(720px, 100%);
	max-height:86vh;
	overflow:auto;
	border-radius:24px;
	background:#fff;
	padding:34px;
	box-shadow:0 24px 60px rgba(0, 0, 0, .25);
}

.privacy-close {
	position:absolute;
	top:18px;
	right:22px;
	width:38px;
	height:38px;
	border-radius:50%;
	background:#2563eb;
	color:#fff;
	font-size:28px;
	font-weight:800;
	cursor:pointer;
}

.privacy-modal-panel h2 {
	padding-right:44px;
	font-size:20px;
	line-height:1.3;
	color:#1e3a8a;
	margin-bottom:18px;
}

.privacy-content {
	font-size: 14px;
	line-height: 1.2;
	color: #444;
}

.privacy-content p {
	margin-bottom:16px;
}

.privacy-content dl {
	display:grid;
	grid-template-columns:150px 1fr;
	gap:10px 14px;
}

.privacy-content dt {
	font-weight:800;
	color:#2563eb;
}

.privacy-confirm {
	width:100%;
	height:54px;
	margin-top:24px;
	border-radius:12px;
	background:#2563eb;
	color:#fff;
	font-size:19px;
	font-weight:800;
	cursor:pointer;
}

@media (max-width:900px) {
	.registration-wrap {
		padding:28px 18px 46px;
	}

	.form-card {
		padding:26px 20px;
		border-radius:20px;
	}

	.section-title-row h1 {
		font-size:30px;
	}

	.section-desc {
		font-size:14px;
	}

	.form-grid {
		grid-template-columns:1fr;
	}

	.choice-card-grid,
	.affiliation-grid,
	.industry-grid,
	.partner-grid {
		grid-template-columns:1fr;
	}

	.panel-title-row {
		display:block;
	}

	.panel-title-row span {
		display:block;
		margin-top:4px;
		text-align:left;
	}

	.attendance-card {
		padding:20px 18px 18px;
		border-radius:22px;
	}

	.attendance-head {
		display:block;
		margin-bottom:16px;
	}

	.attendance-head strong {
		font-size:22px;
		white-space:normal;
	}

	.attendance-head > span {
		margin-top:8px;
		font-size:14px;
		white-space:normal;
	}

	.attendance-buttons {
		grid-template-columns:1fr;
		gap:12px;
	}

	.attendance-choice,
	.special-toggle {
		min-height:58px;
		font-size:22px;
	}

	.choice-icon {
		width:28px;
		height:28px;
		font-size:19px;
	}
}

@media (max-width:520px) {
	.registration-wrap {
		padding:20px 12px 38px;
	}

	.eyebrow {
		font-size:15px;
	}

	.section-title-row h1 {
		font-size:25px;
	}

	.field label,
	.agree-check,
	.common-note-check,
	.common-note-field label,
	.special-note label {
		font-size:14px;
	}

	.field input,
	.field select,
	.common-note-field textarea,
	.special-note textarea {
		font-size:16px;
	}

	.privacy-text {
		align-items:flex-start;
		flex-direction:column;
		font-size:18px;
	}

	.applicant-notice {
		align-items:flex-start;
		gap:12px;
		padding:14px;
		font-size:14px;
	}

	.notice-bubble {
		width:42px;
		height:36px;
	}

	.program-image {
		margin-bottom:16px;
	}

	.attendance-head strong {
		font-size:16px;
	}

	.attendance-choice,
	.special-toggle {
		font-size:20px;
	}

	.privacy-content dl {
		grid-template-columns:1fr;
	}

	.privacy-modal-panel {
		padding:28px 20px;
	}
}

/* 관리자 페이지 */
.admin-page {
	min-height:100%;
	background:#f3f7ff;
	color:#2c2c2c;
}

.admin-wrap {
	width:100%;
	max-width:1400px;
	margin:0 auto;
	padding:46px 24px 70px;
}

.admin-login-card,
.admin-dashboard {
	background:#fff;
	border:2px solid #3b82f6;
	border-radius:24px;
	box-shadow:4px 5px 0 rgba(37, 99, 235, .22);
}

.admin-login-card {
	max-width:520px;
	margin:7vh auto 0;
	padding:34px;
}

.admin-login-card h1,
.admin-dashboard h1 {
	font-size:34px;
	line-height:1.3;
	color:#1e3a8a;
	margin-bottom:22px;
}

.admin-login-card .field {
	margin-bottom:18px;
}

.admin-login-button {
	width:100%;
	height:60px;
	border-radius:14px;
	background:#2563eb;
	color:#fff;
	font-size:22px;
	font-weight:800;
	cursor:pointer;
}

.admin-dashboard {
	padding:30px;
}

.admin-topbar {
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:20px;
	margin-bottom:24px;
}

.admin-desc {
	font-size:16px;
	line-height:1.5;
	color:#555;
}

.admin-logout {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	height:44px;
	padding:0 18px;
	border-radius:999px;
	background:#2563eb;
	color:#fff;
	font-size:16px;
	font-weight:800;
	white-space:nowrap;
}

.admin-summary {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	padding:16px 18px;
	border-radius:16px;
	background:#eff6ff;
	border:1px solid #93c5fd;
	margin-bottom:18px;
	color:#1e3a8a;
}

.admin-summary strong {
	font-size:20px;
}

.admin-summary span {
	font-size:15px;
	font-weight:700;
}

.admin-table-scroll {
	overflow:auto;
	border:1px solid #dbeafe;
	border-radius:16px;
}

.admin-table {
	width:100%;
	min-width:1500px;
	border-collapse:collapse;
	font-size:14px;
}

.admin-table th,
.admin-table td {
	padding:12px 10px;
	border-bottom:1px solid #dbeafe;
	border-right:1px solid #eff6ff;
	text-align:left;
	vertical-align:top;
}

.admin-table th {
	position:sticky;
	top:0;
	z-index:1;
	background:#2563eb;
	color:#fff;
	font-weight:800;
	white-space:nowrap;
}

.admin-table tbody tr:nth-child(even) {
	background:#f8fbff;
}

.admin-table .note-cell {
	min-width:180px;
	white-space:normal;
	line-height:1.5;
}

.empty-cell {
	text-align:center !important;
	padding:42px 20px !important;
	color:#666;
}

@media (max-width:720px) {
	.admin-wrap {
		padding:26px 14px 48px;
	}

	.admin-login-card,
	.admin-dashboard {
		padding:22px;
		border-radius:18px;
	}

	.admin-login-card h1,
	.admin-dashboard h1 {
		font-size:26px;
	}

	.admin-topbar,
	.admin-summary {
		display:block;
	}

	.admin-logout {
		margin-top:14px;
	}

	.admin-summary span {
		display:block;
		margin-top:6px;
	}
}

/* 접수 가능 기간 / 마감 안내 */
.registration-period-box {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:14px;
	margin:0 0 24px;
	padding:16px 18px;
	border-radius:16px;
	background:#eff6ff;
	border:1px solid #93c5fd;
	color:#1e3a8a;
	font-size:18px;
	line-height:1.45;
}

.registration-period-box strong {
	font-weight:800;
	white-space:nowrap;
}

.registration-period-box span {
	font-weight:700;
	text-align:right;
}

.registration-closed-card {
	max-width:760px;
	margin:40px auto;
}

.closed-back-button {
	text-decoration:none;
}

.success-box {
	border:2px solid #60a5fa;
	border-radius:16px;
	background:#eff6ff;
	color:#1d4ed8;
	padding:16px 18px;
	margin-bottom:18px;
	font-size:16px;
	line-height:1.5;
	font-weight:800;
}

/* 관리자 검색 / 다운로드 / 접수설정 */
.admin-panel-grid {
	display:grid;
	grid-template-columns:1.18fr .82fr;
	gap:18px;
	margin-bottom:18px;
}

.admin-control-card {
	border:1px solid #dbeafe;
	border-radius:18px;
	background:#f8fbff;
	padding:20px;
}

.admin-control-card h2 {
	font-size:21px;
	line-height:1.3;
	color:#1e3a8a;
	margin-bottom:16px;
}

.admin-filter-grid {
	display:grid;
	grid-template-columns:2fr 1fr 1fr;
	gap:14px;
	align-items:end;
}

.admin-filter-grid.setting-grid {
	grid-template-columns:1fr 1fr 1fr;
	align-items:end;
}

.admin-actions-row {
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:10px;
	margin-top:14px;
}

.admin-small-button,
.admin-outline-button,
.admin-excel-button,
.admin-delete-button {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	height:44px;
	padding:0 18px;
	border-radius:12px;
	font-size:15px;
	font-weight:800;
	cursor:pointer;
	white-space:nowrap;
}

.admin-small-button {
	background:#2563eb;
	color:#fff;
}

.admin-outline-button {
	border:2px solid #2563eb;
	background:#fff;
	color:#2563eb;
}

.admin-excel-button {
	background:#1e40af;
	color:#fff;
}

.admin-delete-button {
	background:#b72222;
	color:#fff;
}

.admin-table-actions {
	display:flex;
	justify-content:flex-end;
	margin:0 0 10px;
}

.admin-setting-status {
	padding:13px 14px;
	border-radius:14px;
	margin-bottom:14px;
	font-size:14px;
	line-height:1.5;
}

.admin-setting-status strong,
.admin-setting-status span {
	display:block;
}

.admin-setting-status strong {
	font-size:16px;
	margin-bottom:3px;
}

.admin-setting-status.is-open {
	background:#eff6ff;
	border:1px solid #93c5fd;
	color:#1d4ed8;
}

.admin-setting-status.is-closed {
	background:#fff1f1;
	border:1px solid #e58a8a;
	color:#9b1d1d;
}

.admin-close-check {
	display:flex;
	align-items:center;
	justify-content:center;
	gap:9px;
	height:58px;
	padding:0 14px;
	border:2px solid #bfdbfe;
	border-radius:14px;
	background:#fff;
	font-size:17px;
	font-weight:800;
	color:#1e3a8a;
	cursor:pointer;
}

.admin-close-check input,
.admin-table input[type="checkbox"] {
	width:20px;
	height:20px;
	accent-color:#2563eb;
}

.admin-help-text {
	margin-top:12px;
	font-size:14px;
	line-height:1.5;
	color:#666;
}

.admin-table {
	min-width:1640px;
}

.admin-table th:first-child,
.admin-table td:first-child {
	width:48px;
	text-align:center;
}

@media (max-width:1100px) {
	.admin-panel-grid {
		grid-template-columns:1fr;
	}
}

@media (max-width:720px) {
	.registration-period-box {
		display:block;
		font-size:16px;
	}

	.registration-period-box span {
		display:block;
		margin-top:6px;
		text-align:left;
	}

	.admin-filter-grid,
	.admin-filter-grid.setting-grid {
		grid-template-columns:1fr;
	}

	.admin-actions-row {
		display:grid;
		grid-template-columns:1fr;
	}

	.admin-small-button,
	.admin-outline-button,
	.admin-excel-button,
	.admin-delete-button {
		width:100%;
	}
}

/* 신규 사전신청 항목 반영: 관리자 테이블 가로폭 보정 */
.admin-table {
	min-width:2320px;
}