@media print {
    /* 1. 불필요한 요소 제거 */
    .no-print { display: none !important; }
    
    /* 2. 바디 여백 초기화 및 배경색 강제 흰색 */
    body { 
        background-color: white !important; 
        margin: 0 !important; 
        padding: 0 !important;
        font-size: 9px !important; /* 전체 폰트 크기 대폭 축소 */
    }

    /* 3. 메인 컨테이너 여백 및 크기 조절 */
    .form-page {
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0mm 0mm !important; /* 상하 여백 최소화 */
        box-shadow: none !important;
        border: none !important;
    }
    /* 4. 제목 크기 축소 */
    .main-title {
        font-size: 20px !important; 
        margin-bottom: 8px !important;
        padding-bottom: 8px !important;
    }

    /* 5. 표(Table) 간격 극단적 축소 */
    table { margin-bottom: 5px !important; }
    th, td { 
        padding: 2px 5px !important; /* 표 내부 여백을 절반으로 줄임 */
        font-size: 9px !important;  /* 표 글자 크기 축소 */
        line-height: 1.2 !important;
    }
    .vertical-th { width: 35px !important; font-size: 9px !important; letter-spacing: 2px !important; }

   

    /* 7. 가이드 테이블 텍스트 축소 */
    .guide-table td { font-size: 10px !important; padding: 4px !important; }
    .guide-num { font-size: 10px !important; }
    
   
    .consent-section {
        padding: 2px 8px !important; /* 상하 여백 추가 축소 */
        margin-bottom: 1px !important; 
    }
    .consent-content {
        font-size: 9px !important; /* 9px -> 8.5px 로 더 축소 */
        line-height: 1.1 !important;
    }
    /* 과장님이 말씀하신 [동의함] [동의하지 않음] 텍스트 크기 축소 */
    .check-item {
        font-size: 9px !important; /* 11px -> 9px 로 과감하게 축소 */
        gap: 2px !important;
    }
    .check-item input[type="checkbox"] {
        transform: scale(0.8); /* 체크박스 자체 크기도 살짝 줄임 */
    }



    /* [1] 전체 배율 하향 조정 (확실한 1페이지 확보) */
    #formArea {
        transform: scale(0.9); /* 0.9 -> 0.88로 추가 축소 */
        transform-origin: top center;
    }

    /* [2] 노란색 표시 부가 설명 영역 (폰트 및 간격 최소화) */
    .info-box {
        padding: 2px 6px !important; /* 내부 여백 극단적 축소 */
        margin-bottom: 1px !important;
        font-size: 9px !important; /* 폰트 추가 축소 */
        line-height: 1.1 !important; /* 행간 밀착 */
    }

    /* ※ 지원불가 안내 문구 압축 */
    p.text-\[12px\] {
        font-size: 9px !important;
        margin-bottom: 1px !important;
        line-height: 1.1 !important;
    }

    /* 산업안전포털 안내 박스 압축 */
    .info-box.mt-2.mb-3 {
        font-size: 9px !important;
        margin-top: 1px !important;
        margin-bottom: 1px !important;
    }

    /* [3] 동의 섹션 체크박스 폰트 (동의함/동의하지 않음) */
    .check-item {
        font-size: 9px !important; /* 9px -> 8.5px */
        margin-right: 5px !important;
    }
    .check-item input[type="checkbox"],
    .check-item input[type="radio"] {
        transform: scale(0.7) !important; /* 체크박스 크기 축소 */
    }

    /* [4] 마지막 서명 영역 (노란색 표시 부분 - 초소형화) */
    .flex.flex-col.md\:flex-row {
        margin-top: 0 !important; /* 위쪽 여백 제거 */
        padding-top: 2px !important;
        border-top: 0.5px solid #eee !important;
        gap: 2px !important;
    }

    .flex.flex-col.md\:flex-row div, 
    .flex.flex-col.md\:flex-row span {
        font-size: 10px !important; /* 10px -> 9px */
        letter-spacing: -0.5px !important; /* 글자 간격 좁힘 */
    }

    /* 입력창 밑줄 너비 및 간격 최소화 */
    .underline-input {
        font-size: 10px !important;
        /* border-bottom: 0.5pt solid #000 !important;*/
        margin: 0 !important;
    }
    
    input[name="sign_name"] { width: 50px !important; }
    input[name="year"] { width: 30px !important; }
    input[name="month"], input[name="day"] { width: 15px !important; }

    /* [5] 기타 가이드 테이블 등 미세 조정 */
    .guide-table td { font-size: 8.5px !important; padding: 2px !important; }
}

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700&display=swap');
    
    body { 
        font-family: 'Noto Sans KR', sans-serif; 
        background-color: #f8fafc; 
        color: #1e293b;
        line-height: 1.35; /* 기존 1.4 -> 살짝 줄임 */
        font-size: 15px;   /* 기본 체감 줄이기 */
        letter-spacing: -0.1px; /* 살짝 타이트 */
    }
    
    .form-page {
        max-width: 900px;
        margin: 32px auto;      /* 40px -> 32px */
        background: #fff;
        padding: 52px 44px;     /* 60/50 -> 52/44 */
        box-shadow: 0 10px 25px rgba(0,0,0,0.05);
        border-radius: 12px;
        position: relative;
    }

    

    .main-title {
        font-size: 34px;        /* 36 -> 34 */
        font-weight: 700;
        text-align: center;
        border-bottom: 6px double #0f172a;
        padding-bottom: 16px;   /* 18 -> 16 */
        margin-bottom: 16px;    /* 20 -> 16 */
        letter-spacing: -1px;
        color: #0f172a;
    }

    table {
        width: 100%;
        border-collapse: collapse;
        border: 1px solid #000;
        margin-bottom: 10px;
        table-layout: fixed;
    }

    th, td {
        border: 1px solid #000;
        padding: 4px 10px;  /* 기존 5px 12px -> 줄임 */
        font-size: 13px;    /* 14px -> 13px */
        line-height: 1.35;  /* 표 안 행간 */
    }

    th {
        background-color: #f1f5f9;
        color: #0f172a;
        font-weight: 700;
        text-align: center;
    }

    .vertical-th {
        writing-mode: vertical-rl;
        text-orientation: upright;
        width: 55px;
        letter-spacing: 10px;
        font-size: 14px;
        font-weight: 700;
        background-color: #f8fafc;
    }

    input[type="text"], input[type="tel"], input[type="number"] {
        border: none;
        outline: none;
        background: transparent;
        font-size: 13px; /* 표 기준과 맞춤 */
    }

    .input-name-sm {
        width: 120px !important;
        border-bottom: 1px solid #cbd5e1 !important;
    }

    .check-item {
        display: inline-flex;
        align-items: center;
        gap: 5px;            /* 6 -> 5 */
        margin-right: 12px;  /* 15 -> 12 */
        cursor: pointer;
        font-size: 13px;     /* 14 -> 13 */
    }

    .info-box {
        border: 1px solid #cbd5e1;
        padding: 12px;          /* 15 -> 14 */
        font-size: 12.5px;      /* 13 -> 12.5 */
        background-color: #f8fafc;
        margin-bottom: 10px;    /* 20 -> 16 */
        border-radius: 4px;
        line-height: 1.5;       /* 1.8 -> 1.7 */
        color: #475569;
    }

    .guide-table th { font-size: 13px; padding: 10px 8px; } /* 살짝 타이트 */
    .guide-table td { font-size: 12.8px; line-height: 1.1; padding: 10px; }
    .guide-num { text-align: center; font-weight: bold; font-size: 15px !important; }

    .notice-text {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 10px;
        padding: 0 4px;
    }
    
    .consent-section {
        border: 1px solid #000;
        padding: 8px 18px;      /* 10/20 -> 8/18 */
        margin-bottom: 5px;    /* 15 -> 12 */
        background-color: #ffffff;
    }

    .consent-title {
        font-weight: bold;
        font-size: 13px;
        margin-bottom: 8px;
        border-left: 4px solid #0f172a;
        padding-left: 10px;
        color: #0f172a;
    }

    .consent-content {
        font-size: 12.5px;      /* 13 -> 12.5 */
        color: #334155;
        margin-bottom: 8px;
        line-height: 1.15;       /* 1.7 -> 1.6 */
    }

    .btn-submit {
        background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
        color: white;
        padding: 14px 42px;     /* 15/45 -> 14/42 */
        border-radius: 8px;
        font-weight: 700;
        font-size: 15px;        /* 16 -> 15 */
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
        transition: all 0.2s;
    }
    .btn-submit:hover {
        transform: translateY(-2px);
        box-shadow: 0 12px 20px -5px rgba(0, 0, 0, 0.15);
    }

    #loadingOverlay {
        display: none;
        position: fixed;
        top: 0; left: 0; width: 100%; height: 100%;
        background: rgba(255,255,255,0.8);
        z-index: 1000;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        font-weight: bold;
    }

    /* 입력 필드 밑줄 스타일 */
    .underline-input {
        border-bottom: 1px solid #000 !important;
        text-align: center;
    }
