body{
  margin:0;
  padding:40px;
  background:#f3f4f6;
  font-family:'Pretendard','Noto Sans KR',sans-serif;
}

.container{
  max-width:1100px;
  margin:0 auto;
}

.top-area{
  text-align:center;
  margin-bottom:40px;
}

.top-area h1{
  margin:0;
  font-size:64px;
  color:#1f3d68;
  font-weight:800;
}

.top-area p{
  margin-top:14px;
  font-size:28px;
  color:#666;
}

.form-box{
  background:#fff;
  padding:50px;
  border-radius:24px;
  box-shadow:0 6px 24px rgba(0,0,0,0.08);
  margin-bottom:40px;
}

.input-group{
  margin-bottom:30px;
}

.input-group label{
  display:block;
  font-size:30px;
  font-weight:700;
  margin-bottom:14px;
}

.input-group input{
  width:100%;
  height:78px;
  border:2px solid #d9d9d9;
  border-radius:18px;
  padding:0 24px;
  font-size:26px;
  box-sizing:border-box;
}

button{
  width:100%;
  margin-top:20px;
  height:90px;
  border:none;
  border-radius:20px;
  background:#1f3d68;
  color:#fff;
  font-size:34px;
  font-weight:700;
  cursor:pointer;
}

#message{
  margin-top:24px;
  text-align:center;
  color:#d40000;
  font-size:20px;
}

.paper{
  width:210mm;
  min-height:297mm;
  background:#fff;
  margin:0 auto;
  padding:16mm;
  box-sizing:border-box;
  box-shadow:0 4px 20px rgba(0,0,0,0.1);
}

.card-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  border-bottom:3px solid #1f3d68;
  padding-bottom:14px;
  margin-bottom:18px;
}

.card-header h2{
  margin:0;
  font-size:34px;
  letter-spacing:8px;
  color:#1f3d68;
}

.card-header p{
  margin:8px 0 0;
  color:#666;
  font-size:14px;
}

.photo-box{
  width:32mm;
  height:40mm;
  border:1.5px solid #333;
  display:flex;
  justify-content:center;
  align-items:center;
  color:#777;
  font-size:16px;
}

.section-title{
  background:#1f3d68;
  color:white;
  font-weight:700;
  font-size:15px;
  padding:8px 12px;
  margin-top:16px;
  border-radius:4px 4px 0 0;
}

table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
}

th, td{
  border:1px solid #333;
  padding:8px;
  font-size:13px;
  height:26px;
  word-break:break-all;
}

th{
  width:22%;
  background:#f1f5f9;
  text-align:center;
  font-weight:700;
}

td{
  background:#fff;
}

.approval-box{
  margin-top:24px;
  display:flex;
  justify-content:space-between;
  font-size:14px;
  font-weight:600;
}

.print-btn-area{
  text-align:center;
  margin:30px 0 60px;
}

.print-btn{
  width:260px;
  height:70px;
  border:none;
  border-radius:16px;
  background:#1f3d68;
  color:#fff;
  font-size:28px;
  font-weight:700;
  cursor:pointer;
}

@media print{

  @page{
    size:A4;
    margin:0;
  }

  body{
    margin:0;
    padding:0;
    background:#fff;
  }

  .no-print{
    display:none !important;
  }

  .paper{
    width:210mm;
    height:297mm;
    margin:0;
    padding:13mm;
    box-shadow:none;
    overflow:hidden;
  }

  .card-header h2{
    font-size:28px;
  }

  .photo-box{
    width:28mm;
    height:35mm;
  }

  .section-title{
    font-size:12px;
    padding:6px 10px;
    margin-top:11px;
  }

  th, td{
    font-size:10.5px;
    padding:5px;
    height:21px;
  }

  .approval-box{
    font-size:12px;
    margin-top:18px;
  }
}